是否可以投影对象的每个属性并添加更多内容,而无需专门列出所有属性.例如,而不是这样做:
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())
};
我们可以做这样的事情:
var projection = from e in context.entities
select new QuestionnaireversionExtended
{
e,NumberOfItems = (e.Children.Count())
};
它将从e获取具有相同名称的每个属性,并在其上添加“NumberOfItems”属性?
解决方法
不,这是不可能的. LINQ表达式的select子句允许生成值的普通C#表达式.没有C#构造,它将通过对象初始化器以这样的模板样式方式创建对象.您需要列出属性或使用显式构造函数.