我正在尝试使用EF6从数据库中获取数据。 我有两个班级
public class Manufacturer
{
public int Id {get;set;}
public string Name {get;set;}
public bool Enabled {get;set;}
public virtual IList<Product> Products {get;set;}
}
public class Product
{
public int Id {get;set;}
public string Name {get;set;}
public bool Enabled {get;set;}
public virtual Manufacturer Manufacturer {get;set;}
}
我只需要启用带有启用产品的启用制造商 我尝试了下面的内容:
var results = _context.Manufacturer
.Where(m => m.Enabled)
.Where(m => m.Products.Any(p => p.Enabled))
.Select(m => new
{
Manufacturer = m;
Product = m.Products.Where(p => p.Enabled)
});
不幸的子对象没有被填满。 “产品”列表中包含的产品不是“已启用” 有什么想法吗?
答案 0 :(得分:1)
var r = context.Products.Include("Manufacturer")
.Where(p=>p.Enabled && p.Manufacturer.Enabled);
答案 1 :(得分:0)
你可以这样做。但我检查了你的代码,它也可以。我不知道为什么你没有启用产品...
var manufacturers = (from o in _context.Manufacturer
where o.Enabled
select
new
{
manufacturers = o,
products = o.Products.Where(c=>c.Enabled).ToList()
}).ToList();