2013-08-19 146 views
2

我遇到的情况,我将使用同一个表两个或多个模型。比方说RecordCareerWorkshopRecordRecruitment。我这样做是因为他们可能有不同的验证要求,显示名称,验证错误信息等两个模型共享同一个表?

我创建了两个模型,并把一个表(“记录”)在类的顶部。

例如:

[Table("records")] 
public class RecordCareerWorkshop 

[Table("records")] 
public class RecordRecruitment 

然而,当我运行网页,我得到错误信息如下:

的实体类型 'RecordCareerWorkshop'和“RecordRecruitment”不能 份额表“记录”,因为他们不是在同一类型层次 或没有有效的一对一的外键关系与 匹配他们之间的主键。

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

编辑:

如果我源自同一基类中的两个型号为表记录,如:

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在哪里弹出。

+0

这听起来更像是ORM比MVC本身...但我可以完全理解为什么ORM可能会被你的意图弄糊涂 –

回答

1

你可以走两种路线在这里的一个:

  • 派生从同一个基类两种型号。
  • 仅包含一个实体,然后创建将从主实体供电的两个的ViewModels。

如果两个实体有关系,你应该去选择1 如果它们是相同的基本概念的只是不同的表示,你应该去选择2

+0

HI Kenneth,你介意给我一个例子(1)吗?请检查我编辑的问题。 – neobie

相关问题