Computed kolonların EntityFramework tarafından kullanımı

Computed kolonların EntityFramework tarafından kullanımı, SqlServer’da kullandığımız computed türdeki kolonların EntityFramework tarafından kullanabilmek için Computed türde bir kolon olduğunu belirtmeniz gerekiyor yoksa bu tür alana insert update v.s. yapılamazken Computed kolon olduğunu bilemediğinden bu işlemi yapmaya çalışacak ve Exception fırlatılacaktır.

Çözüm Yolu

SqlServer'da Salary tablosunun kolonları.

Peki bu Computed kolon tanımını EntityFramework içerisinde nasıl yapıyoruz. Eğer DbFirst kullanıyorsanız herhangi bir tanımlama yapmanıza gerek yok çünkü generator zaten bu tür tanımlamaları kendisi yapmaktadır sadece yeni kolon eklediyseniz Add/Update komutlarını edmx dosyası üzerinden gerçekleştirmelisiniz.

Ama CodeFirst bir yapınız mevcut ise o zaman Alttaki gibi fluent yada Attribute olarak ilgili özelliğin(kolonun) Computed olduğunu belirtmelisiniz.

Fluent olarak yapmanız gereken tanım şu şekide;

Attribute olarak yapmanız gereken tanım ise şu şekildedir.

Total özelliğinin Attribute yada fluent yapısı üzerinden nasıl Computed olarak işaretleneceğini bu örnek kodlarımız ile görmüş olduk artık bu kolonlara EntityFramework üzerinden insert yada update işlemi setter bloğunun erişim belirleyicinin private olarak işaretlenmesinden dolayı bilinçli olarak ve üstteki tanımlamalarımızdan dolayı EntityFramework tarafından Exception fırlatılacak bir işlem yapılamayacaktır.

Kaynaklar

  • https://docs.microsoft.com/tr-tr/ef/core/modeling/relational/computed-columns
  • https://stackoverflow.com/questions/15585330/calculated-column-in-ef-code-first
5/5 - (1 vote)

Murat Öner sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et