Linq Sum inline
本文关键字:inline Sum Linq | 更新日期: 2023-09-27 18:13:24
有可能这样做吗?
实体(带有3个属性)
——> int
——> 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
}
当使用对象初始化语法时,您只能将属性分配给构造时可用的字段。如果你想用A
和B
计算C
,你有两个选择。您可以从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
中计算出来,那么您可以创建一个getter属性,如@vc74