我的SQL服务器中有一个表,它看起来像:
|Calendarweek| Hours|
|1 |4 |
|2 |5 |..。
我把这个表放到一个数据集中,然后用linq查询它。现在的问题是,在我们的业务逻辑中,第一周是4月份的第一周。我有一个方法,在四月的第一个星期为我找到一个特定年份的第一周。我现在要做的是重新计算宪兵周的费用。所以今年的Calendarweek 14 = 1, Calendarweek 15 = 2等等。
我检查了所有的Linq扩展,但是找不到重新编码的方法。有人能帮我吗?
首先,我可以将查询简化为:
dim query = from row in datatable1.AsEnumerable发布于 2014-08-26 15:01:56
如果您已经知道第一周是14周,为什么不能简单地将14添加到表中的Calendarweek-value中呢?
Dim query = From row In datatable1.AsEnumerable
Let Calendarweek = row.Field(Of Int32)("Calendarweek")
Let Hours = row.Field(Of Int32)("Hours")
Select x = New With {
.Calendarweek = Calendarweek,
.Hours = Hours,
.RealWeek = Calendarweek + 14
}用给出正确值的方法替换14 (不太清楚)。
发布于 2014-08-26 15:01:28
我会使用一个匿名类型来调用一个方法。
dim query = from row in datatable1.AsEnumerable
select new
{
Hours = row.Hours,
Calendarweek = MyConversionMethod(row.Calendarweek)
};您需要将row.Hours更改为datatable使用的任何列,我认为是命名列吗?所以也许是row["Hours"]。
https://stackoverflow.com/questions/25508905
复制相似问题