2013-03-04 12 views
7

mam coś takiego:Czy istnieje sposób na usunięcie mechanizmu śledzenia zmian dla pojedynczego obiektu?

var dbTransactions = context.Transactions.Where(t => t.Date >= yesterday).Select(t => t).ToList(); 

Teraz chciałbym, aby usunąć obiekty z dbTransactions liście, ale nie od rzeczywistej bazy danych. Później dzwonię pod numer context.SaveChanges(), a jeśli to zrobię, spowoduje to usunięcie wierszy z bazy danych. Jak mogę wyłączyć śledzenie zmian dla dbTransactions?

+1

http://stackoverflow.com/questions/4168073/entity-framework-code-first- no-detach-method-on-dbcontext – SLaks

+1

Usunięcie obiektów z 'List ' nie oznaczy ich jako usuniętych w twoim 'DbContext' –

Odpowiedz

9

myślę, że można użyć AsNoTracking i Transakcje użyć Odłącz

Youcontext.YourEntities.AsNoTracking().Where); 

lub użyj

Youcontext.Transactions.Detach(obj); 
+0

Czy istnieje coś takiego jak atrybut' [NoTracking] 'do użycia w jednostkach POCO? Jak powinniśmy oznaczać podmioty POCO (w naszym przypadku jednostki wyszukiwania) jako brak śledzenia ?! – orad

0

Usuń te podmioty z kontekstu używając Detach():

context.Transactions.Detach(obj); 

tak jasno trzeba będzie odzyskać tę listę - ale potem po prostu iterację go i odłączyć je.

Powiązane problemy