Soyut bir temel sınıftan türetilmiş iki varlığınız olduğunu ve Tablo Tabanlı Beton-Tipini uygulamak istediğinizi varsayalım.EF Çekirdek Tabanlı Uygulama Tabanlı Beton Tabanlı Özet Taban sınıfının akıcı olarak eşleştirilmesi
public abstract class EntityBase
{
public int Id { get; set; }
public string CreatedBy { get; set; }
public DateTime CreatedAt { get; set; }
}
public class Person : EntityBase
{
public string Name { get; set; }
}
public class PersonStatus : EntityBase
{
public string Title { get; set; }
}
Ve soyut temel sınıf (VarlıkTabanı) 'de özellik kullanmak istemiyorsanız, sadece bir kez tüm varlıklar için DBContext yılında VarlıkTabanı sınıfını eşlemek istiyorum: Aşağıdaki gibi Entities. Eğer BaseClass için yapılandırmalar yazmaya gerek ..
public class PeopleDbContext : DbContext
{
public DbSet<Person> People { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// Entity base class mapping(only once)
modelBuilder.Entity<Person>(e =>
{
e.Property(x => x.Name)
.IsRequired()
.HasMaxLength(100);
});
modelBuilder.Entity<PersonStatus>(e =>
{
e.Property(x => x.Title)
.IsRequired()
.HasMaxLength(100);
});
}
}
bir şey denemek mü? Bunun gibi kurulumlarım var ve Kimlik, sözleşmeyle alınıyor. –
Evet, dbcontext'te (akıcı) EntityBase sınıfını eşlemeye çalıştığımda, ef EntityBase sınıfı için başka bir tablo oluşturdu. Bundan önce, akıcı nhibernate ile uyguladı ve ClassMap kullanarak düzgün çalıştı. Ayrıca, ef 6 “builder.Types (..)” kullandım. İstediğim gibi çalıştı. Ama ef core ile yapamadım. –