2012-10-10 80 views
1

下面調用GetProducts()方法時出現異常。我本質上是試圖通過指定國家的可用產品來篩選我的產品清單。產品和國家之間有一對多的關係。EF LINQ多對一過濾器/其中

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

無法創建 類型 'DataModels.Country' 的恆定值。在此上下文中僅支持基本類型或枚舉類型。

如果我不以這種正確的方式進行篩選,那麼通過選定的一個國家過濾產品的最佳方法是什麼?

回答

3

您只能基於原始類型進行比較。

我會改變它使用Any方法。使用國家實體密鑰(或獨特屬性)替換ID

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

謝謝!那就是訣竅。 – RSolberg