Entity Framework从Entity类中选择和排除字段

时间:2014-08-15 14:39:18

标签: c# entity-framework

在EF中,此查询为我提供了匿名类List<anonymous{}>。还有其他方法可以将结果作为List<Parent>。或者有没有办法从父类和子类中排除select中的属性

db<Parent>
      .Select(o => new { o.ID, Childs = o.Childs.Select(t => new { t.ID }) })
      .ToList()

3 个答案:

答案 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对象,同时排除所述对象的属性。