2

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

我创建了两个模型,并将 [Table("record")] 放在类的顶部。

例如:

[Table("records")]
public class RecordCareerWorkshop

[Table("records")]
public class RecordRecruitment

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

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

我可以知道如何使用共享同一张表的两个模型吗?

编辑:

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

public class Record

public class RecordCareerWorkShop : Record

public class RecordRecruitment : Record

我将收到错误消息:

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

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

var records = db.RecordRecruitment.Where(x => x.company_id == id).ToList();

真的不知道 Extent1,Discriminator 在哪里弹出。

4

1 回答 1

1

您可以在这里走两条路线之一:

  • 从同一个基类派生两个模型。
  • 仅包含一个实体,然后创建两个将从主实体提供的 ViewModel。

如果两个实体相关,您可能应该选择选项 1。如果它们只是相同基础概念的不同表示,您应该选择选项 2。

于 2013-08-19T07:38:56.537 回答