Cod*_*rue 7 c# linq projection
是否可以投影对象的每个属性并添加更多内容,而无需专门列出所有属性.例如,而不是这样做:
var projection = from e in context.entities
select new QuestionnaireVersionExtended
{
Id = e.Id,
Version = e.Version,
CreationDate = e.CreationDate,
...
many more properties
...
NumberOfItems = (e.Children.Count())
};
Run Code Online (Sandbox Code Playgroud)
我们可以做这样的事情:
var projection = from e in context.entities
select new QuestionnaireVersionExtended
{
e,
NumberOfItems = (e.Children.Count())
};
Run Code Online (Sandbox Code Playgroud)
在哪里从e获取具有相同名称的每个属性,并在其上添加"NumberOfItems"属性?
不,这是不可能的。LINQ 表达式的 select 子句允许使用生成值的普通 C# 表达式。没有 C# 构造可以像这样通过对象初始值设定项以模板样式方式创建对象。您需要列出属性或使用显式构造函数。