假设我有两张桌子。第一个是Models
,Id
,MachineType
,BrandId
和ModelName
列,第二个表是Brands
Id
}和BrandName
列。
我需要为我的存储库编写一个方法,该方法返回给定MachineType的所有品牌。如果我在Brands表中有一个MachineType列,那就非常简单了:
public IEnumerable<Brand> GetBrandByType(MachineTypeEnum type)
{
return _context.Brands.Where(x => x.MachineType == type).AsEnumerable();
}
但是我的情况怎么办呢?
答案 0 :(得分:2)
如果您在实体上定义了导航属性:
_context.Brands.Where(b => b.Models.Any(m => m.MachineType == type))
.AsEnumerable();
否则
from b in _context.Brands
join m in _context.Models
on b.Id equals m.BrandId into g
where g.Any(m => m.MachineType == type)
select b