有没有可能做一些链接这个?
实体(具有 3 个属性)
---> int A
---> int B
---> int C
from record in dbset
select new Entity
{
A = record.A
B = record.B
C = A * B
}
在这个具体的例子中,使用
from record in dbset
select new Entity
{
A = record.A
B = record.B
C = record.A * record.B
}
使用对象初始化语法时,您只能将属性分配给在构造时可用的字段。因此,如果您想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 计算出来A
,B
那么你可以创建一个 getter 属性,正如@vc74 所建议的那样