.Net Core Razor Page kullanılarak basit bir şekilde Optimistic Concurrency(İyimser Eş Zamanlılık) konusunda uygulanan yöntemlerin ve farkılıkların incelenmesi için yapılmıştır.
Bu uygulamada sadece Update işlemleri için eş zamanlılık kontrolü bulunmaktadır. Bunun için 2 farklı yöntem kullanılmıştır. Attribute olarak Propertye tanımlanması ve RowVersion olarak yeni bir sütun aracılığıyla kontrol sağlanması ve ayrıca normal update işlemi yapılarak concurrency olmadan yapılan update işleminde Last In Wins konusu örneklendirilmiştir.
public class ConcurrencyCheckAttributeToken
{
public int Id { get; set; }
[ConcurrencyCheck]
public string Name { get; set; }
public string Lastname { get; set; }
public int Age { get; set; }
}
public class ConcurrencyRowVersion
{
public int Id { get; set; }
public string Name { get; set; }
public string Lastname { get; set; }
public int Age { get; set; }
[Timestamp]
public byte[] RowVersion { get; set; }
}
appsettings.json içerisindeki ConnectionStrings kontrol edilerek düzenlendikten sonra Package Manager Console' Default project Infrastructure seçilip update-database yazıldıktan sonra uygulama çalıştırılabilir.