2009-08-14 19 views
3

Ich habe eine Liste, die die PK-IDs einer Anzahl von Objekten in einer Sammlung enthalten, die ich entfernen möchte. Kann jemand eine einzelne Abfrage schreiben, um diese Objekte abzurufen?Entity Framework: Löschen mehrerer Objekte Abfrage

ZB:

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(); 
} 

Jede Hilfe wäre sehr dankbar!

Antwort

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

Mels Antwort nicht funktioniert, weil in .NET 3.5 SP1 die EF nicht wissen, wie list.Contains (...) in T-SQL zu übersetzen. Obwohl dies in 4.0 kommt.

dieses Problem umgehen, manuell ist eine große oder eine Abfrage dh zu produzieren

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

Hier ein Tipp, den ich schrieb, macht so einfach:

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

Hope this

Alex hilft James

Entity Framework Te bin - mein Entity Framework Tips

0

http://efe.codeplex.com

this.Devices.Update(o => new Device() { LastOrderRequest = DateTime.Now, Description = "teste" }, o => o.Id == 1); 
lesen
Verwandte Themen