在LINQ to Entities中,是否可以使用可在IQueryable中的实体的导航属性上使用的扩展方法?
例如,如果我有一个具有导航属性产品的制造商实体,我可以执行以下操作:
// ManufacturersQuery is an IQueryable<Manufacturer>
from m in ManufacturersQuery
let p = m.Products.ReturnableProducts()
where ...
select ...
// Extension method - This throws the error "LINQ to Entities does not recognize the method ReturnableProducts and this method cannot be translated into a store expression."
public static IEnumerable<Product> ReturnableProducts(this IEnumerable<Product> products)
{
return products.Where(p => p.IsReturnable);
}
我认为如果导航属性m.Products返回IQueryable而不是ICollection,这可能是可能的,但我不知道是否可以更改。
可以这样做吗?谢谢!