C# 两个模型共享同一张表?

C# 两个模型共享同一张表?,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个场景,其中有两个或多个模型将使用同一个表。比如说RecordCareerWorkshop和RecordRecruption。我这样做是因为它们可能有不同的验证要求、显示名称、验证错误消息等 我创建了两个模型,并在类的顶部放置了一个[表(“记录”)] 例如: [Table("records")] public class RecordCareerWorkshop var records = db.RecordRecruitment.Where(x => x.company_id =

我有一个场景,其中有两个或多个模型将使用同一个表。比如说RecordCareerWorkshopRecordRecruption。我这样做是因为它们可能有不同的验证要求、显示名称、验证错误消息等

我创建了两个模型,并在类的顶部放置了一个[表(“记录”)]

例如:

[Table("records")]
public class RecordCareerWorkshop
var records = db.RecordRecruitment.Where(x => x.company_id == id).ToList();

但是,当我运行该网页时,我会收到如下错误消息:

实体类型“RecordCareerWorkshop”和“RecordRecruption”不能为空 共享表“记录”,因为它们不在同一类型层次结构中 或者与没有有效的一对一外键关系 在它们之间匹配主键

我可以知道如何使用共用同一张桌子的两个型号吗

编辑:

如果我从表记录的同一基类派生了两个模型,例如:

public class Record

我将收到错误消息:

“字段列表”中的未知列“Extent1.Discriminator”

每当我执行任何代码时,例如:

[Table("records")]
public class RecordCareerWorkshop
var records = db.RecordRecruitment.Where(x => x.company_id == id).ToList();

真的不知道Extent1、鉴别器会弹出在哪里。

您可以在这里选择两条路径之一:

  • 从同一基类派生两个模型
  • 仅包含一个实体,然后创建两个将从主实体馈送的ViewModel
如果两个实体都相关,您可能应该选择选项1。
如果它们只是同一基本概念的不同表示,那么您应该选择选项2。

这听起来更像ORM而不是MVC本身。。。但是我完全理解为什么ORM会被你的意图所迷惑thereHI Kenneth,你介意给我举个(1)的例子吗?请检查我编辑的问题。
var records = db.RecordRecruitment.Where(x => x.company_id == id).ToList();