2013-02-19 17 views
3

我做了一個Reveres代碼Eng inner,先用MYSQL DB的EF電動工具生成代碼 我可以很好地讀取表格。 當我嘗試保存任何我遇到下面的異常。我不設置這個字段,也不會在這個字段名稱的解決方案中有任何東西。帶電動工具3.x的EF5.x Beta

  ProjectContext db = new ProjectContext(); 
      Person person = new Person(); 
      person.UpdatedAt = DateTime.Now; 
      person.UserId = 1; 
      person.PersonName = "test"; 
      db.Persones.Add(person); 

      db.SaveChanges(); 

{"Unknown column 'Discriminator' in 'field list'"} 

編輯 我注意到,我有另一類是繼承這個類

公共類學生:人 {

}

當我刪除繼承它的工作。 但有誰知道爲什麼? 有什麼想法?

+0

檢查生成的上下文和pocos。你很可能有一個數據庫,導致表每個層次結果。也許生成的代碼需要調整。我們無法看到有趣的部分。 TPH的原因,請參閱http://weblogs.asp.net/manavi/archive/2010/12/24/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-1-table-per作爲示例說明 – 2013-02-19 01:33:21

回答

4

問題是,如果您有一個類從其他類繼承,則會自動添加此字段。這個字段被使用,所以EF可以知道女巫記錄代表學生和女巫記錄只是個人。

This article這是soadyp提到的更好解釋。

使用codefirst創建的模型默認使用TPH。