【问题标题】:EF LINQ many to one filter/whereEF LINQ 多对一过滤器/位置
【发布时间】:2012-10-10 17:41:19
【问题描述】:

下面调用GetProducts() 方法时出现异常。我实际上是在尝试按指定国家/地区的可用产品来过滤我的产品列表。产品和国家/地区之间存在一对多关系设置。

    public static List<Product> GetProducts(Country country)
    {
        Context db = new Context();
        return db.Products.Where(m => m.Countries.Contains(country)).ToList<Product>();
    }

无法创建类型的常量值 'DataModels.Country'。只有原始类型或 在此上下文中支持枚举类型。

如果我的方法不正确,那么按单个选定国家/地区过滤产品的最佳方法是什么?

【问题讨论】:

    标签: c# .net linq entity-framework linq-to-entities


    【解决方案1】:

    您只能根据原始类型进行比较。

    我会将其更改为使用Any 方法。将 ID 替换为 Country 实体键(或唯一属性)

    db.Products.Where(m => m.Countries.Any(c => c.ID == country.ID)).ToList<Product>();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 2021-07-16
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多