在EF中,此查询为我提供了匿名类List<anonymous{}>
。还有其他方法可以将结果作为List<Parent>
。或者有没有办法从父类和子类中排除select
中的属性
db<Parent>
.Select(o => new { o.ID, Childs = o.Childs.Select(t => new { t.ID }) })
.ToList()
答案 0 :(得分:0)
是的,将其投影到Parent对象而不是匿名对象。
db<Parent>
.Select(o =>
new Parent{ o.ID,
Childs = o.Childs.Select(t => new { t.ID })
}
).ToList();
第二个想法: 如果您没有使用Parent类返回每个属性,[意见警告]您应该投射到DTO中,因为那时您必须管理/记住哪些字段正在加载哪些字段不被加载。那是一场维护噩梦。 [/意见警告]
答案 1 :(得分:0)
您没有指定需要此行为的环境,但它在MVC中很常见。
如果您正在询问MVC,那么您可能需要将您的结果序列化为json。
如果是这种情况并为复杂案例创建特定选择那么......
(我知道 - 很多IF,我的答案可能不适用,但仍然:)
...查看custom ContractResolver实施。
答案 2 :(得分:0)
或者有没有办法从父类和子类中排除select中的属性。
否,您无法选择/返回强类型的Entity Framework对象,同时排除所述对象的属性。