4

有没有可能做一些链接这个?

实体(具有 3 个属性)
---> int A
---> int B
---> int C

from record in dbset
select new Entity  
{  
    A = record.A  
    B = record.B 
    C = A * B  
}
4

2 回答 2

4

在这个具体的例子中,使用

from record in dbset
select new Entity  
{  
    A = record.A  
    B = record.B 
    C = record.A * record.B  
}
于 2013-05-13T17:18:37.953 回答
3

使用对象初始化语法时,您只能将属性分配给在构造时可用的字段。因此,如果您想C计算A和,您有两个选择B。您可以从以下位置读取这些属性record

from record in dbset
select new Entity  
{  
    A = record.A  
    B = record.B 
    C = record.A * record.B  
}

更复杂的情况可能会使以这种方式重复和的定义变得A站不住脚B。例如,对这些属性的计算方式重复一个长定义可能在计算上是昂贵的。当重复类似的代码时,也更难阅读。在这些情况下,您可能希望有一个中间选择类,在最终选择之前收集相关信息:

from record in dbset
select new { A = someComplicatedFunction(record.A), B = someComplicatedFunction(record.B) } into info
select new Entity { A = info.A, B = info.B, C = info.A * info.B }

当然,如果C总是从 and 计算出来AB那么你可以创建一个 getter 属性,正如@vc74 所建议的那样

于 2013-05-13T17:29:32.447 回答