Я прочитал статью о методе AsNoTrackingWithIdentityResolution() и о том, что это способ разрешения идентификации без отслеживания, и что при его использовании в фоновом режиме запускается средство отслеживания изменений, отличное от средства отслеживания контекста, для разрешения сущностей, которые относятся к одной и той же строке к одному экземпляру.
Я пытался проверить это, выполнив следующий код, но экземпляры не были разрешены в один экземпляр.
Код: Выделить всё
// Initially the table is empty
Employee emp1 = new Employee()
{
FirstName = "name1",
LastName = "name2",
Salary = 11111
};
context.Add(emp1);
context.SaveChanges();
Employee emp2 = (from e in context.Employees
where e.FirstName == "name1"
select e).SingleOrDefault();
// Identity resolution takes place
Console.WriteLine(emp1 == emp2); // True
Employee emp3 = (from e in context.Employees
where e.FirstName == "name1"
select e).AsNoTrackingWithIdentityResolution().SingleOrDefault();
// Expected to give True due to using AsNoTrackingWtihIdentityResolution()
Console.WriteLine(emp1 == emp3); // but found False
Employee emp4 = (from e in context.Employees
where e.FirstName == "name1"
select e).AsNoTrackingWithIdentityResolution().SingleOrDefault();
// Also no identity resolution happened
Console.WriteLine(emp4 == emp3); // False
Источник: https://stackoverflow.com/questions/781 ... ot-working
Мобильная версия