我在下面调用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'。只有原始类型或 在此上下文中支持枚举类型。
如果我没有以正确的方式解决这个问题,那么选择一个国家/地区过滤产品的最佳方法是什么?
答案 0 :(得分:3)
您只能根据基本类型进行比较。
我会将其更改为使用Any
方法。将ID
替换为国家/地区实体密钥(或唯一属性)
db.Products.Where(m => m.Countries.Any(c => c.ID == country.ID)).ToList<Product>();