实体框架过滤lambda导航属性

时间:2015-11-19 10:41:00

标签: c# .net lambda entity-framework-6

使用.NET Entity Framework 6我需要过滤包含的虚拟集合的元素。我的意思很容易用以下代码解释:

context.MyEntity.Include( navigationPropertyCollection => navigationPropertyCollection.Where( np => np.IsActive() ) )

代码只是一个例子,从MyEntity说我想只包含navigationPropertyCollection的活动元素。

有没有聪明的方法呢?

1 个答案:

答案 0 :(得分:3)

  

请注意,目前无法过滤加载了哪些相关实体。包含将始终引入所有相关实体。

msdn reference

你可以通过匿名投影来试试这个

var resultObjectList = _context.
                   Parents.
                   Where(p => p.DeletedDate == null).
                   OrderBy(p => p.Name).
                   Select(p => new
                             {
                                 ParentItem = p,
                                 ChildItems = p.Children.Where(c => c.Name=="SampleName")
                             }).ToList();

Similar Answer in Stack