EFCore实现Table-Per-Concrete-Type,与抽象基类平滑映射假设你有两个派生自的实体一个抽象基类,并且您想实现Table-Per-Concrete-Type。以下实体:publicabstractclassEntityBase{publicintId{get;放;}publicstringCreatedBy{得到;放;}publicDateTimeCreatedAt{get;放;}}publicclassPerson:EntityBase{publicstringName{get;放;}}publicclassPersonStatus:EntityBase{publicstringTitle{get;如何更改以下代码:publicclassPeopleDbContext:DbContext{publicDbSetPeople{get;放;}protectedoverridevoidOnModelCreating(ModelBuildermodelBuilder){base.OnModelCreating(modelBuilder);//实体基类映射(仅一次)modelBuilder.Entity(e=>{e.Property(x=>x.Name).IsRequired().HasMaxLength(100);});modelBuilder.Entity(e=>{e.Property(x=>x.Title).IsRequired().HasMaxLength(100);});这是你问题的答案。你需要为BaseClass编写配置:builder.Property(b=>b.CreatedBy).HasColumnType("varchar(50)");builder.Property(b=>b.CreatedAt).HasColumnType("datetime2");}}之后就可以为每个表写具体的Configuration-Class了,继承自EntityBase,如下:se.配置(建造者);builder.Property(e=>e.Name).HasColumnType("varchar(100)").IsRequired();调用dbContext中的配置,可以调用ApplyConfiguration:以上为C#学习教程:EFCore实现Table-Per-Concrete-Type,抽象基类平滑映射。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——publicclassPeopleDbContext:DbContext{publicDbSetPeople{get;放;}protectedoverridevoidOnModelCreating(ModelBuildermodelBuilder){modelBuilder.ApplyConfiguration(newPersonConfig());}}本文收集自网络,不代表立场。如涉及侵权请点击维权联系管理会员删除如需转载请注明出处:
