Linq Sum 内联

4

是否可以像这样做?

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

from record in dbset
select new Entity  
{  
    A = record.A  
    B = record.B 
    C = A * B  
}
2个回答

4
在这个特定的例子中,请使用
from record in dbset
select new Entity  
{  
    A = record.A  
    B = record.B 
    C = record.A * record.B  
}

3
使用对象初始化语法时,只能将属性分配给在构造时可用的字段。因此,如果您想要从AB计算C,则有两个选项。您可以从record中读取这些属性:
from record in dbset
select new Entity  
{  
    A = record.A  
    B = record.B 
    C = record.A * record.B  
}

更加复杂的情况可能会使得以这种方式重复定义 AB 变得不可行。例如,重复一个长定义,说明如何计算这些属性可能会耗费计算资源。当重复类似的代码时,阅读也更加困难。在这些情况下,您可能希望使用中间选择器类来收集相关信息,然后再进行最终选择。
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建议的那样创建一个getter属性。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接