2010-04-17 58 views

回答

3

我認爲AIS問是,如果你可以加入從不同的數據庫,沒有什麼不同供應商,導致一個實體映射到兩個或多個表或表來自不同數據庫的意見

如果你考慮一下,當你使用Visual Studio創建一個EDM模型時,它會要求你給一個現有的數據庫,當完成創建模型時,它會生成一個EF連接字符串,連接字符串。

E.g:元數據= RES:// /EFTestModel.csdl|res:// /EFTestModel.ssdl|res:// /EFTestModel.msl;provider=System.Data.SqlClient; 提供商連接字符串= 「數據源= \;初始目錄= EFTest;集成安全性= TRUE; MultipleActiveResultSets =真」 *

所以每個模型只有一個數據庫,只有連接字符串相匹配。

EF4仍不支持創建一個適用於N個存儲模型的概念模型。至少這不受任何內置提供者支持。也許在未來,這可以通過一個新的提供者來完成,這個提供者結合了許多存儲的支持(來自相同的提供者或不同的提供者)。

我還沒有做就可以了足夠的研究,但也許的Windows Server AppFabric的(代號速度)可能是通過這個差距的橋樑。

注:我已盡力,甚至編輯手動爲EDM(EDMX)的XML插入< EDMX內的第二元素:StorageModels >標籤,但它不匹配EDM XML架構中,以便VS警告一下: 錯誤10021:遇到重複的Schema元素。

貝尼特斯奧爾特加 MAP2010

4

我竟然沒有找到一個方式,如果你的數據庫支持同義詞作出EF模型跨越多個數據庫。基本上你設置別名到上的Database2數據庫1,創建單獨的EDMX模型對每個,然後合併XML

我張貼的具體步驟作出EDMX文件跨越多個數據庫here如果你有興趣,有一個腳本來執行沿只要有事情發生變化,您就會合並。

+0

從長遠來看,您是否遇到過任何問題?它完全兼容嗎? – 2012-09-06 09:26:14

+0

偉大的鏈接。非常巧妙。 – 2012-09-06 09:32:16

+1

@LuisFilipe我做這個項目實際上被取消了,所以我從來沒有機會完全測試一切。從我所得到的機會來測試,唯一真正的限制是'同義詞'的限制。例如,如果您的同義詞指向另一臺服務器,則僅限於訪問鏈接服務器的SQL規則。 – Rachel 2012-09-06 19:35:58