实体框架 - 如何获取包含筛选的子实体集合的实体



我有类别,类别有产品集合(Category.Products(。我需要通过 id 从数据库中检索类别,但我希望它只包含具有给定条件的产品,而不是包括其所有产品(例如,order=0(

如何使用 linq 执行此操作? 我尝试过:

var e = db.Categories
.Include(a => a.products)
.Where(a => a.products.Any(r => r.order == 0))
.FirstOrDefault(p => p.id == id_category);

我认为你不能这样做。在任何情况下,对.Include()的调用都应该在任何where子句之后进行,否则它将不起作用。

为了过滤子集合,您可以尝试选择它进行YouCustomModel或匿名投影。

请注意,当前无法筛选加载的相关实体。包含将始终引入所有相关实体 Msdn 引用。

var e = db.Categories
.Where(c => c.id == id_category)
.Select(p=> new 
{ 
category = p,
products = p.Products.Where(k=>k.order==0)
}.FirstOrDefault();

var e = db.Categories.Where(a => a.order == 0(;

最新更新