实体框架核心模型构建器忽略忽略<class>()配置

时间:2019-06-13 09:04:27

标签: c# entity-framework-core

我对EntityFramework Core迁移存在问题,该迁移包括抽象类。

主要数据库结构包含一个抽象基类和一个子类,该子类从其自己的基类继承,基本上每个表一个基类和一个子类。在类型配置中,我仅配置子类,并使用builder.Ignore<BaseClass>()从模型中排除基类。我需要忽略,因为EF Core也想映射基类,并且我想使用忽略方法来排除基类。

当我在基类上使用[NotMapped]属性时,迁移成功,但是当我使用Ignore()时,模型构建器只是想映射基类,就像我没有调用{{ 1}}。

比方说,DBSet现在包含Ignore(),它继承自Test     TestBase

public virtual DbSet<Test> Test { get; set; }

迁移因与基类相关的错误而失败,因此我认为EF Core也希望映射基类型,因为如果在protected override void OnModelCreating(ModelBuilder modelBuilder) { var assembly = System.Reflection.Assembly.GetExecutingAssembly(); modelBuilder.ApplyConfigurationsFromAssembly(assembly); modelBuilder.Ignore<TestBase>(); base.OnModelCreating(modelBuilder); } 上使用[NotMapped],则迁移有效。我之所以不能使用TestBase的主要原因,是因为我也需要EF生成的数据库中的基类,并且通过EF,子类继承了NotMapped属性

感谢您的帮助!

0 个答案:

没有答案