有可能做点什么吗?
实体(含3个属性)
---> int A
---> int B
---> int C
from record in dbset
select new Entity
{
A = record.A
B = record.B
C = A * B
}
答案 0 :(得分:4)
在此具体示例中,使用
from record in dbset
select new Entity
{
A = record.A
B = record.B
C = record.A * record.B
}
答案 1 :(得分:3)
使用object initialization syntax时,您只能为施工时可用的字段指定属性。因此,如果您希望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
总是由A
和B
计算出来,那么您可以根据@ vc74