2009-05-28 53 views
3

我剛開始使用微軟的實體框架,將它用於MVC項目,因爲微軟似乎真的在推動它,而我遇到了一些問題。在我的數據庫中有多個查找表通過外鍵綁定到單個表。在實體框架內,我試圖將它們合併爲一個,以便在模型中爲這些數據提供簡化的單一視圖。但是,從設計師的角度來看,這似乎不可能。有什麼明顯的我失蹤了嗎?有沒有辦法可以手動編輯edmx文件來生成這種模型?處理實體框架v1中的查找表

回答

3

目前,實體框架中的外鍵和查找表是PAIN。

EF與LINQ使得越來越你的數據超級簡單,表面上看起來容易更新,但查找表事情變得困難(現在...閱讀...)

我不知道如何將您的查找表「組合」到一個表中。如果每個表格包含不同類型的「查找實體」,那麼恕我直言,它們應該在您的EDM中單獨表示。我猜你正在頭痛的將記錄的外鍵更新到查找表。那是因爲這很令人頭疼。

更改外鍵值:

MyDBEntities _db = new MyDBEntities(); 
//get a Person 
MyDBEntities.Person person = (from p in _db.Persons 
         where p.Id = 1 
         select p).First(); 
// This sets the foreign key value in the Person table on the PersonType field 
person.PersonTypeReference = new EntityKey("MyDBEntities.PersonType", "PersonTypeId", 3) 

的實體框架的next release version會有一個叫做新概念 「FK關聯。」這將直接恢復設置外鍵值的完整性,而不必創建和設置EntityKey。

HTH。

+0

更正:在.NET 3.5 SP1中已經有了一個'Release版本'。 將會有另一個版本,將在.NET 4.0中出貨。 對不起,我對這件東西很挑剔,只是因爲它延續了EF尚未發貨的錯誤觀念;) – 2009-05-28 22:55:03