c# - LINQ to Entities 无法识别该方法

标签 c# linq entity-framework linq-to-entities

public IQueryable<Product> GetModelsInBrand(int BrandId) 
{ 
    IQueryable<Product> query = 
         from Product 
          in ObjectContext.Products.Where(p => (p.BrandId == BrandId)) 
         orderby Product.Model 
         select Product; 
        query = query.Distinct(new ProductByModelEqualityComparer()); 
        return query; 
}

执行返回查询后,我得到

Load operation failed for query 'GetModelsInBrand'. LINQ to Entities does not recognize the method."

谁能帮忙修改一下吗?

最佳答案

LINQ-to-entities 可能不支持您在 ProductByModelEqualityComparer 中编写的代码。您可以在调用 Distinct 之前调用 AsEnumerable,这将使 Distinct 通过 linq-to-objects 执行,但它不会是 IQueryable 不再:

var enumerable = query.AsEnumerable().Distinct(new ProductByModelEqualityComparer()); return query; }

关于c# - LINQ to Entities 无法识别该方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5478627/

相关文章:

c# - 在 ASP.NET MVC 中连接查询字符串

java - 是否有 LINQ 的 Java 等价物?

entity-framework - 如何使用 Entity Framework 更新对象

mysql - 从数据库更新模型 | Visual Studio 2019

c# - 使用 C# 读取 XML/KML 文件

c# - LINQ to Entities - 多个 OrderBy 方法不起作用

c# - 如何使用Windows IOT获取Raspberry PI 2的处理器序列号

c# - SharePoint 2013 更新面板空闲

linq - ExpressionVisitor.Visit<T> 有什么作用?

c# - 如何从父实例列表中获取特定子实例的列表?