2014-05-25 21 views
14

Sono abituato a Entity Framework 4, in cui, quando si chiama alcune opinioni che ho dovuto assicurarsi di impostare MergeOption-NoTracking in questo modoDov'è MergeOption in Entity Framework 6?

SHEntity.qry_UserPermissions.MergeOption = System.Data.Objects.MergeOption.NoTracking; 

Ma l'aggiornamento alla 6.1 ef non ho nemmeno vedere come MergeOption parte di qry_UserPermissions più. Devo impostare questo o EF a volte combina i record quando non lo voglio. Ho cercato su Google e non ho avuto fortuna, anche se mi sembra un problema semplice.

Come disattivare il rilevamento in EF 6.1?

+0

Hai provato il [AsNoTracking] (http://msdn.microsoft.com/en-us/library/gg679352 (v = vs.103) aspx) -Estensione? – user3411327

+0

@ user3411327 Non ho, anche se mi sembra sorprendente, che avrei dovuto usare un metodo di estensione per farlo ora – cost

+0

Ho pensato che tu passassi da ObjectContext e ObjectQueries a DbContext e DbSets. DbSet non fornisce la proprietà MergeOption come fa ObjectQuery. – user3411327

risposta

13

utilizzando l'entità del metodo AsNotrack(), è possibile interrompere il rilevamento dell'entità in EF questo può essere scritto mentre si esegue una query sul contesto.

Esempio.

using (SHEntity context = new SHEntity()) 
{ 
    var up = context.qry_UserPermissions.AsNoTracking().ToList(); 
} 
Problemi correlati