2012-09-28 51 views
2

我們將實體框架4與POCO實體生成器一起使用。到目前爲止,我們只有一個.edmx文件,但由於它的當前大小(超過100個實體),我們遇到了性能問題。跨多個edmx文件共享實體類型

我知道我們應該打算將其分解爲一系列.edmx文件,這些文件很好,但有一個例外。我們想要以某種方式在兩個或更多這些上下文中共享某些實體類型。例如,在我們的模型中,用戶類與許多其他不相關的實體相關聯。

那麼是否有可能擁有自己的.edmx和命名空間用於生成POCO,但在另一個.emdx中使用它?如果不是我擔心,我們將有多個類建模相同的數據庫表,這將需要與數據庫同步更新。我會說這是行不通的。 (我們首先使用數據庫)。

很明顯,如果我吠叫錯了樹,請讓我知道!

回答

2

從理論上講,您可以將單個POCO類與多個EDMX映射一起使用,因爲映射和類只能匹配屬性的名稱和名稱/類型。實際上這有一些限制。只需幾個我能想到的:

  • 除非修改生成的每一個EDMX並確保每個實體將僅單臺發電機從單EDMX生成不能使用自動代碼生成器使用這種方法。這直接指向第二個限制。
  • 實體在每個EDMX中必須完全相同。包括導航屬性。如果不是,如果不構建自己的代碼生成解決方案,您將無法生成它。如果動態代理要求具有唯一名稱的類只映射一次,情況會更糟糕。如果您對同一個類有兩個或更多不同的映射,那麼您將無法使用動態代理(延遲加載,動態更改跟蹤),並且每個應用程序運行只有一個映射。
+0

謝謝拉迪斯拉夫。我懷疑這不是直截了當的。我會把這個標記爲答案,但會讚賞另一個提示。有沒有可以指向我的地方,這可以幫助我理解如何爲EDMX編寫自定義代碼生成器?再次感謝。 – getsetcode