在ef核心中的继承中使用公用表名

时间:2018-02-04 06:10:38

标签: inheritance entity-framework-core asp.net-core-2.0 ef-core-2.0 tablename

我是实体框架的新手,并开始玩它。我正在尝试使用我的常用结构,该结构由具有原始属性的ElementRange.getCommonCharacterFormat()项目组成。 Core扩展核心类并添加任何其他数据库特定属性,在这种情况下添加DataAccessDBContext扩展Business并拥有所有业务逻辑。最后,一个DataAccess项目,其中多个模型可以为不同目的扩展每个业务类。

Models中的课程是这样的:

Core

我的public class Blog { public int BlogId { get; set; } public string Url { get; set; } } 得到了这样的上下文类:

DataAcceess

我的public class MyContext : DbContext { public DbSet<Blog> Blogs { get; set; } } 得到了这个:

Business

最后我的public class Blog : DataAccess.Blog { public void Add() { using (var db = new MyContext()) { db.Blogs.Add(this); db.SaveChanges(); } } } 包含:

Models

现在我收到实体类型public class BlogModel : Business.Blog {} 不存在的错误。该表的名称是Blog not BlogModel。我尝试过以下方法:

  1. 在DataAccess,业务和模型中添加BlogModel
  2. 将其转换为[Table("Blog")]。类型仍然保持不变
  3. 创建属性(Blog)this,尝试更改其类型。
  4. 即使模型名为Blog Current => this

    ,也会发生

    更新:

0 个答案:

没有答案