Bilmek istediğin her şeye ulaş

Entity Framework'te Inheritance mevzusu projelerde olmazsa olmaz mı?

Yoksa ne olursa olsun kullanmasak da olur mu? Çünkü özellikle Tpt inheritance çoklu join sorgularda büyük problemmiş. Gerçi konuya yabancıyım onu da belirteyim.Düzenle
EntityFramework'te inheritance kullanımının "olmazsa olmaz" olabileceği ihtimaline nasıl varabildik onu merak ettim ben... Veri class'larının birbirinden türetilmesinden bahsediyoruz yanılmıyorsam, başka bir "inheritance" değil sanırım sorduğunuz...

EntityFramework inheritance kullanımını destekliyor. Lakin, veri alanlarını ilişkilendirmek yerine, inheritance kullanıldığı zaman, veritabanı üzerinde tablo yapılarının pek de güzel oluşmadığını söylemem gerekir. Ayrıca soru açıklamasında belirttiniz gibi; hem sorgulamada hem de veri modelinin ayağa kalkması sırasında performans kaybı olabilceğini düşünüyorum. Kişisel görüşüm; EntityFramework ne kadar nesneye yönelik bir yaklaşıma sahip olsa bile; yine de inheritance kullanılmamalı. Class'lar tabloları temsil edebilecek mümkün olan en basit yapıda olmalı ve nesne ilişkileri class içindeki veri alanlarıyla sağlanmalı. Inheritance, MongoDb benzeri NoSQL sistemlerine daha çok yakışabilecek bir kullanım tarzı olacaktır diye düşünüyorum.

Yani örnek olarak; Canlı -> Hayvan -> Kedi yapısını düşünürsek,

public class Canli { }
public class Hayvan : Canli { }
public class Kedi : Hayvan { }

şeklinde kullanmak yerine;

public class Canli { }
public class Hayvan { public Canli CanliInfo { get; set; } }
public class Kedi { public Hayvan HayvanInfo { get; set; } }

şeklinde kullanılması benim daha çok tercih ettiğim ve önerebileceğim kullanım şeklidir... Aksini savunan da olabilir muhtemelen, ama "olmazsa olmaz" demek mümkün değil... Daha çok "eğer öyle istiyorsan öyle de olur" benzeri bir durumdur inheritance kullanmak. . .
  • Paylaş
1

Unluckypod, mantıklı. teşekkür ederim. çünkü bir yerden okuduğum kadarı ile, bir class ın çoklu inherit ettiği durumlarda (misal 3' ten fazla) aynı anda yapılandırıcıların çalışmasından dolayı performansda ciddi düşüler oluyormuş.bu sayı 15 i bulduğunda ise misal çok büyük projelerde, o zaman serverin üstesinden gelmesi imkansızmış. o yüzden tpt kullanılacaksa mesela, en fazla 3 class ın inherit edilmesi tavsiye edliyormuş. ona göre dikkat edilip design edilmesi lazımmış database in. bu söylediklerimde hata olabilir nitekim programlamada henüz çaylağım.

Sonraki Soru
HESAP OLUŞTUR

İstatistikler

479 Görüntülenme4 Takipçi1 Yanıt