EF Core Code First模式下如何忽略继承属性且不修改父类
在EF Core Code First中忽略子类继承的属性(无需修改父类)
可以通过EF Core的Fluent API实现需求,无需修改父类A的代码,仅在DbContext的配置中针对实体B单独忽略继承来的User属性。
具体实现
在你的DbContext类中重写OnModelCreating方法,使用modelBuilder对实体B做专属配置:
public class YourDbContext : DbContext { public DbSet<B> Bs { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { // 让EF Core忽略实体B的User属性 modelBuilder.Entity<B>() .Ignore(b => b.User); base.OnModelCreating(modelBuilder); } }
原理说明
EF Core的Fluent API配置优先级高于默认属性映射规则,Ignore方法会明确告知EF Core:处理实体B的数据库映射时,不包含User属性(即便它继承自父类A)。最终生成的B对应数据库表中,不会出现User列。
内容的提问来源于stack exchange,提问作者Pablo Sarturi
相关产品推荐
相关产品推荐

