2013-08-19 189 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

相關問題