C# 两个模型共享同一张表?
我有一个场景,其中有两个或多个模型将使用同一个表。比如说RecordCareerWorkshop和RecordRecruption。我这样做是因为它们可能有不同的验证要求、显示名称、验证错误消息等 我创建了两个模型,并在类的顶部放置了一个[表(“记录”)] 例如: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 =
[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
如果它们只是同一基本概念的不同表示,那么您应该选择选项2。这听起来更像ORM而不是MVC本身。。。但是我完全理解为什么ORM会被你的意图所迷惑thereHI Kenneth,你介意给我举个(1)的例子吗?请检查我编辑的问题。
var records = db.RecordRecruitment.Where(x => x.company_id == id).ToList();