4
A
回答
3
相同的模型不能從兩個不同的數據庫中獲取數據。最簡單的方法是在同一個數據庫中創建一個視圖,從另一個數據庫調用並返回數據,即內部調用外部數據庫視圖的抽象視圖。
2
如果您的數據庫支持同義詞,您可以爲另一個數據庫設置同義詞,並將edmx定義與第一個數據庫的定義合併。我寫了如何去做here
基本上你最終會得到兩個edmx文件和一個將兩者合併成一個工作edmx文件的腳本。同義詞用於引用另一個數據庫而不需要完整的數據庫路徑。
0
如果在實體框架使用代碼第一種方法,這裏是如何EF實體映射到其他數據庫中的表:
SQL腳本,需要在數據庫中運行,以從其他表創建同義詞數據庫:
CREATE SYNONYM OtherDatabaseTableSynonym FOR otherdatabase.dbo.otherdatabasetable
實體框架映射在(流利API):
modelBuilder.Entity<OtherDatabaseTableEntity>().ToTable("OtherDatabaseTableSynonym").HasKey(x => x.id);
啊,怎麼我會願意讓來自其他數據庫數據的視圖。事實上,我想這樣做,但我被告知可能性被禁止。 :P – khr055 2011-02-11 20:09:22