Linq hatası Row not found or changed
Veritabanı Bağlamı - Yenile (RefreshMode.KeepChanges);
Veritabanı kayıtlarını demo için örnek bir uygulama var gibi görünür -
benim uygulamadan, ben 'Paris' için 'Londra' dan konumu ile çalışanları güncellemek istiyorum .
var dbContext = new EmployeeDataContext();
var employeesInLondon = from emp in dbContext.Employees
where emp.Location.Equals("London")
select emp;
foreach (var employeeInLondon in employeesInLondon)
{
employeeInLondon.Location = "Paris";
}
//Simulate as if another user is updating the database before you submit the update
Console.WriteLine("Now update the Employee table by running this in SQL Server Management Studio:");
Console.WriteLine("UPDATE Employee SET Location = 'Delhi', LastName = 'John' WHERE Location = 'London';");
Console.WriteLine("And hit any key...");
Console.ReadKey();
dbContext.Refresh(RefreshMode.KeepChanges); //Why the error is thrown even after adding this statement
dbContext.SubmitChanges();
kod yukarıda görebileceğiniz gibi - - SSMS aracılığıyla farklı Güncelleme SQL çalıştırmak, sadece benim değişiklikleri göndermeden önce İşte benim kodudur. Ve hata beklendiği gibi atılır.
Yani, sadece SubmitChanges()
çağırmadan önce kodunun altına eklendi -
dbContext.Refresh(RefreshMode.KeepChanges);
hata yine ben SubmitChanges()
çağırmadan önce veritabanı içeriğinde yenilemek bile atılan neden Sorum şu. Ben hala yukarıdaki kod ile ChangeConflictException alıyorum.
Lütfen burada ne kaçırdığımı anlatayım? Bilginize
, ben demo üzerinde oluşturmak için linki aşağıda kullanmış ve ben çelişkili nesne/üyelerini listelemek için catch blok eklemek için biliyorum - Row not found or changed - Finding the culprit
varlık çerçevesi değil, bu (sizin Yeniden Etiketleme hakkında) linq-to-sql olduğunu – Jcl