我想创建一个可以在Select()投影中使用的可重用方法。这是一个简单的例子:
public partial class Product
{
public IQueryable<ProductImage> GetProductImages(bool ActiveOnly)
{
return this.ProductImages.Where(i => !ActiveOnly || i.IsActive);
}
}
public class App
{
public void Main()
{
var product = db.Products.Select(p => new {
p.Name,
p.GetProductImages(true)
}
}
}
以上标准LINQ to Entities does not recognize the method ...
将会失败,我知道我可以致电db.Products.ToList().Select(...)
,但这不是我想要的,就像我的情况一样,我是为了避免将不必要的数据存入内存。
我已经成功使用Microsoft.Linq.Translations一段时间来自定义属性,但是这在我的示例中不起作用,因为我需要传入一个参数,所以方法实际上是我能看到这个的唯一方法工作。非常感谢任何帮助。