有没有办法将Where子句应用于Included子表?
实施例:
我有一个Customers
实体集和Addresses
实体集,我已经使用[Include]
属性对元数据类进行了适当的修饰。我可以轻松过滤客户的财产,例如姓氏......
public IQueryable<Alphagram> GetCustomersWithAddresses()
{
return this.ObjectContext.Customers.Include("Address")
.Where(w => w.LastName == "Smith")
}
但是说我想过滤一下地址子表的属性,比如Address.City?地址作为客户的属性存在,但智能感知不会获取任何地址列。
我最好使用联接而不是包含吗?
答案 0 :(得分:1)
你可以这样做:
public IQueryable<Alphagram> GetCustomersWithAddresses()
{
return this.ObjectContext.Customers.Include("Address")
.Where(w => w.LastName == "Smith" && w.Address.Any(a => a.City == "Some city") /* w.Address.All(...) */)
}
现在取决于您希望完成的工作以及客户和地址的相关性(1-1,1- *等)。
...问候