2009-08-14 4 views
3

У меня есть список, в котором хранятся идентификаторы PK из нескольких объектов в коллекции, которую я хочу удалить. Кто-нибудь знает, как написать один запрос для извлечения этих объектов?Entity Framework: Удаление запроса нескольких объектов

Например:

IList<int> objectList; // populated with int Primary key Ids 

using (MyEntities context = new MyEntities()){ 

    var result = context.MyObjectCollection.Where(obj=> obj.ID IN objectList); 

    foreach(var item in result){ 
     context.DeletObject(item); 
    } 
    context.SaveChanges(); 
} 

Любая помощь больш была бы оценена!

ответ

1
var result = context.MyObjectCollection.Where(obj=> objectList.Contains(obj.ID)); 
1

ответ Мел не работает, потому что в .NET 3.5 SP1 ЭФ не знает, как перевести list.Contains (...) в T-SQL. Хотя это в 4.0.

Для устранения этой проблемы вручную производить большой или запрос IE

Where(obj => obj.ID == item1 || obj.ID == item2 ....) 

Вот совет, который я написал, что делает это легко:

Tip 8 - How to write where IN style queries using LINQ to Entities

Надеется, что это помогает

Alex James

Entity Framework Te Я - Прочитайте мой Entity Framework Tips

Смежные вопросы