【问题标题】:Inheritance Database in Entity Framework Core and ASP.NET Core MVCEntity Framework Core 和 ASP.NET Core MVC 中的继承数据库
【发布时间】:2021-04-07 13:25:34
【问题描述】:

我正在学习这门课程MVC with Entity Framework Core

本课程的类图是这样的:Class Diagram image

在继承部分Inheritance Part 中,他们创建了一个新表Person 来存储实体框架中StudentInstructor 2 个模型的所有数据。并在数据库中删除 2 个表 StudentInstructor

现在,Entity Framework 中有 3 个模型:PersonStudentInstructor

我尝试在不加载 Person 的情况下将数据导入 StudentInstructor 模型

modelBuilder.Entity<Person>().ToTable("Person");

我收到这条消息:

代码:

public DbSet<Student> Students { get; set; }
public DbSet<Instructor> Instructors { get; set; }
private DbSet<Person> People { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Student>().ToTable("Person");
    modelBuilder.Entity<Instructor>().ToTable("Person");
}

问题

1.是不是所有的数据都必须进入Entity Framework?

2.在这种情况下,对于敏感数据,有没有什么模式可以制作继承数据库?

非常感谢。

【问题讨论】:

  • 您是在 .NET Core 上使用“旧”的经典实体框架 (v6.x) - 还是使用实体框架 Core 版本?请清楚 - 你的问题和标签在这方面不是很清楚。
  • 我的错,谢谢你的新版本。

标签: c# entity-framework asp.net-core-mvc


【解决方案1】:

现在,Entity Framework 中有 3 个模型:Person、Student、Instructor

如果您没有需要它的用例,请不要将 Person 设为实体。只是学生和导师。这样你就不会在数据库中有任何继承。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-06
    • 2017-05-16
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多