微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 在LINQ中具有附加值的完整对象投影

是否可以投影对象的每个属性添加更多内容,而无需专门列出所有属性.例如,而不是这样做:
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#构造,它将通过对象初始化器以这样的模板样式方式创建对象.您需要列出属性或使用显式构造函数.

原文地址:https://www.jb51.cc/csharp/100453.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐