Merhabalar Bu makalemizde gündeme aldığımız konu entity framework core 5 ile gelen yeni özelliklşer TPT ve TPH konularıdır
TPT:Table-per-type—TPH:Table-per-hierarchy
Entity framework e eklenen TPT ve TPH yeni özellikleri ile mapping yapması konusunda bilgi veriyor olacağız.;
Varsayılan olarak .net üzerinde gelen tek tablo database hiyerarşisinde yeni bir dönem olarak karşımıza çıkan TPH mapping yöntemi ile her bir satır bize yeni bir kimlik ile bağlantılarımızı yapmamızı sağlamaktadır. Ayrıca tablolar arasındaki bağlantıları kurmamızı sağlayan TPT(table-per-type) iyapısı ile her bir tablo kendi içerisinde bağlantılı sayılabilecektir.
Şöyleki;(aşağıdaki kodları örnek olarak başka kaynaktan almış bulunmaktayım)
Aşağıda ifade edildiği gibi tablolar arasında TPT ve TPH mapping işelmleri vardir.
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
public class User : Person
{
public string UserName { get; set; }
}
public class Client : Person
{
public string Email { get; set; }
}
Dikkat edildiği gibi 2 farklı tablo person tablosu ile ilişkilendirilmiştir. Sonuç olarak bu tabloların sql tarafındaki kodu alınmak istendiğinde.
CREATE TABLE [People] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(max) NULL,
[Discriminator] nvarchar(max) NOT NULL,
[Email] nvarchar(max) NULL,
[UserName] nvarchar(max) NULL,
CONSTRAINT [PK_People] PRIMARY KEY ([Id])
);
şeklinde oluşturulmaktadır.
Burada dikkat edilmesi mevzular TPH ve TPT mapping işlemleri yapılan tablolar null kabul etmemesidir. Buna bağlı düzenlemeler tam yapılmalıdır.
Özetle şunu söylemeliyiz ki; Entityframework 5 ile gelen bu özellik bir çok işimizi kolaylaştıracaktır. Uygulamalarınızda bu kolaylığı kullanmanızı öneriririm.
Affınıza sığınarak mümkün mertebe türkçe terimler kullanmak istiyorum ama genel global bazda anlaşılması adına kavramları türkçeleştiremiyoruz 🙂