c# – 告诉EF6不要坚持基类但设置FluentAPI禁忌

我有一个名为“Entity”的基类,我在其中放置了应该由ever实体继承的标准字段(例如Id,CreateAt,UpdateAt).我更喜欢使用FluentAPI,因为据说它比注释更强大,它可以实现清晰易读的POCO类.有没有办法可以在父流体实现类的流畅api中为这些字段设置属性并让它继承但是也不在数据库中为“实体”POCO类生成表? 最佳答案 正常的实体配置是这样的:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Planet>().HasKey(b => b.Id);
}

但是,正如您所注意到的,这也会将类型注册为模型的一部分.实体框架6虽然引入了DbModelBuilder.Types<T>方法,根据文档:

Begins configuration of a lightweight convention that applies to all entities and complex types in the model that inherit from or implement the type specified by the generic argument. This method does not register types as part of the model.

这意味着您可以像这样配置基本实体类:

modelBuilder.Types<Entity>().Configure(c =>
{
    c.HasKey(e => e.Id);
});

这样可以节省您从Entity继承的每种类型的操作.

点赞