2009-03-16 12 views

Odpowiedz

5

Niezupełnie pod tym formularzem nie.

Będziesz musiał wybrać wszystkie podmioty, które pasują do twoich kryteriów, zapoznać się z nimi i zaktualizować je.

Jeśli szukasz czegoś, co zrobi to bezpośrednio w DB, ponieważ twój zestaw może być ogromny, będziesz musiał użyć SQL bezpośrednio. (Nie pamiętam, czy EF ma sposób na wykonanie zapytań UPDATE bezpośrednio w sposób Linq To SQL).

+0

Właśnie podejrzewam, użyję sproc – Drevak

+8

Albo możesz użyć tego: http://weblogs.asp.net/pwelter34/archive/2011/11/29/entity-framework-batch-update- i-future-queries.aspx – MutantNinjaCodeMonkey

+0

@MutantNinjaCodeMonkey Nice package, thanks for sharing! –

3

Powinno być, będzie po prostu trochę bardziej ograniczony.

var myEntity = context.First(item => item.id == 10); 
myEntity.value += 1; 
context.SaveChanges(); 

Powinny wytwarzać podobne SQL, można obejrzeć profiler, aby zobaczyć, co faktycznie jest generowane SQL, ale powinien być bardzo podobny do wyciągu.

+2

EF-SQL generowany jest zupełnie inna: dwie instrukcje SQL, które nie są niepodzielne. –

+0

+1 b/c używa rdzenia EF. –

11

Użyj funkcji Batch Aktualizacja Entity Framework Extended Library coś takiego:

dbContext.Tests.Update(t => t.Id == 10, t => new Test() { Value = t.Value + 1 }); 
+0

MutantNinjaCodeMonkey wspomniał o tej bibliotece w komentarzu do innej odpowiedzi. Uważam, że biblioteka tak dobrze pasuje do ustawy, że warto zwrócić na to uwagę w osobnej odpowiedzi. –