我在使用Code-First的實體框架中存在一個問題,我無法解決。任何屬性等於對象列表中的任何一個
有我的數據庫類型
public class Product {
public int ID {get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
public class Category {
public int ID {get; set;}
public virtual ICollection<Product> Products { get; set; }
// rest omitted
}
的實體,我試圖讓二者具有給定分類的列表的至少一個類別的所有產品。我需要一個表達式,因爲此表達式稍後與其他表達式結合使用。
即,我想:
var searchFor = new List<Category>{...};
var expression = product => product.Categories.Any(cat => searchFor.Contains(cat))
執行此之後對一個DbContext
context.Products.Where(expression).ToList();
創建一個異常,說明主要是This context supports primitive types only
。
將其更改爲
var expression = product => product.Categories.Any(
cat => searchFor.Any(d => d.ID == cat.ID));
擺脫對象比較沒有幫助的。我卡住了。我該如何管理?
完美的作品,THX – okrumnow 2012-03-14 08:03:29