我是一個EF newb,需要一些幫助以瞭解如何通過導航屬性查詢實體。實體框架關係查詢混淆
使用C#和LINQ LAMBDA方法只是我使用得到這個代碼:
List<PublisherImage> images = db.DataModel.PublisherImages.Include("Categories").Where(pi => pi.Enabled && pi.Rendered).OrderBy(pi => pi.ID).ToList();
我需要能夠按類別ID的列表,所以我按該類別獲得出版商的圖像過濾此實體。使用上面的例子,我將如何去做我習慣於SQL(IN語句)的東西?
有人可以告訴我一個使用C#LINQ Lambda方法而不是LINQ運算符的例子嗎?
非常感謝!
編輯:
這裏是什麼,我試圖做一個更好的例子:
string categoryIds = "1,2,3,4";
var ids = Array.ConvertAll(categoryIds.Split(','), int.Parse);
List<PublisherImage> images = db.DataModel.PublisherImages.Include("Categories").Where(pi => pi.Enabled && pi.Rendered && pi.Categories.Where(c => ids.Contains(c.ID)).Any()).OrderBy(pi => pi.ID).ToList();
這個問題似乎還不清楚。你能否提供更多關於你的模型的信息,以及你想要過濾的值?聽起來你可以做一個'.Where(pi => ids.Contains(pi.ID))',但我不知道你的對象/關係是什麼樣子。 – mtmurdock 2012-03-29 19:09:55
我剛剛添加了一個更好的代碼示例。 – Jared 2012-03-29 19:12:36
好的,這段代碼更清晰,但是你的問題是什麼?看起來這會做你想做的事情。 – mtmurdock 2012-03-29 19:20:21