我在L2E中使用3個簡單的表格,其目的非常簡單:用戶,用戶角色,角色。VS 2008中的實體設計器是否簡單破碎?
用戶與用戶ID(唯一標識符)列上引用的Users_Roles具有1:多關係。那時,角色與任何表格都沒有關係。我把所有3張表都帶到了設計師手中,這反映了用戶到Users_Roles的映射,而Roles則獨自一人。
實現角色應映射到許多多關係中的Users_Roles,我跳入管理工作室。我打了一個從角色到Users_Roles的關係並保存了它。然後,我跳回到VS,並在邏輯上做了下一個合乎邏輯的步驟 - 嘗試通過右鍵單擊「從數據庫更新模型」來更新實體模型。它在更新列表中顯示了所有三個表。更新後,視覺關係沒有改變。我試圖重新編譯,看是否進行了更改,但收到兩個錯誤只在行號不同:
Error 3 Error 3034: Problem in Mapping Fragments starting at lines 177, 192: Two entities with possibly different keys are mapped to the same row. Ensure these two mapping fragments map both ends of the AssociationSet to the corresponding columns. C:*\Model1.edmx 178 15 MVCTestApp
試圖將錯誤調試都無濟於事。最終感到沮喪,刪除了模型並重建了它。這種關係得到了認可,設計師得到了更新,生活也很好。
這不是我第一次想把外面的設計師帶到外面去埋葬它:無論如何,一個禮拜前我都很想刪除一張桌子,並且很快就學會了刪除桌子設計師只有將其從設計師處刪除;其映射停留。
所以,有幾個問題:
1)是這種行爲僅限於VS 2008?我將有2010不久,我希望的是,設計師按預期,
2)是可更換有其他工具內置的設計,實際上工作,
3)是有辦法從模型更新實際更新 - 也許一些技巧,我不知道除了刪除整個模型,因此失去了我手動設置的所有其他關係?
據我所知,實體框架4.0(VS2010中可用)有很大的改進,儘管它在功能和成熟性方面仍然有點落後於nHibernate。 – 2010-07-26 15:54:42