6

Mögliche Duplizieren:
Bulk-deleting in LINQ to EntitiesGibt es so etwas wie DbSet <T> .RemoveWhere (Prädikat <T>)

Ich brauche einige Einrichtungen, die von Zustand zu entfernen. Zum Beispiel, entfernen Sie alle Artikel Bestellmenge von weniger als 1:

var orderId = 10; // any order Id 
context.OrderItems.RemoveWhere(item => item.OrderId == orderId && item.Quantity < 1.0); 

Ich weiß, dass ich diese Elemente auswählen und sie dann ein-by-one entfernen wie folgt aus:

var itemsToRemove = context.OrderItems.Where(item => item.OrderId == orderId && item.Quantity < 1.0).ToArray(); 

foreach (var item in itemsToRemove) 
    context.OrderItems.Remove(item); 

Aber das ist sehr unwahrscheinlich, weil zusätzliche Arbeit geleistet wird. Bin ich etwas verpasst?

Antwort

3

Sie könnten das EntityFramework.Extended Plugin auf GitHub verwenden, das Batch Update and Delete unterstützt.

+0

Diese Lösung hat einige Einschränkungen, aber es ist besser als nichts. Danke, ich werde es versuchen. – Dennis

+0

@Dennis es ist Open Source, so dass Sie es immer an Ihre Anforderungen anpassen können. – James

+0

@james Die Einschränkungen sind eher theoretischer/praktischer Natur. Es gibt keine generische Möglichkeit für ein ORM, Batchupdate und Delete ordnungsgemäß zu unterstützen. Es ist immer noch weitgehend ein offenes Forschungsproblem in der akademischen Informatik, das auf praktisches Software-Engineering ausgerichtet ist - siehe Willard Cooks "Batching" -Papier für einige der neuesten. –

Verwandte Themen