2012-10-12 49 views
0

多個方面,我不知道我是否可以對實體模型中的多個連接,如 -開放獲取的實體模型

using (var db = new VWEntitiesModel("data source=Dev;initial catalog=Website1;user id=sqluser;password=&&password")) 
{ 
    some logic 
} 

using (var db = new VWEntitiesModel("data source=Dev;initial catalog=Website2;user id=sqluser;password=&&password")) 
{ 
    some logic 
} 

我使用Telerik的OpenAccess的實體模型。我試圖如上使用。它似乎不喜歡它。有什麼建議嗎?

+0

當你說*它不喜歡它時*你能否對這種不喜歡的事情更精確一點?它有什麼形式?也許是錯誤信息或什麼? –

+0

我對Telerik OpenAccess並不熟悉,但是,如果不能,我會說這是一個主要限制。無論如何,這段代碼是同步的,因此您在技術上不會打開2個單獨的連接,您將在打開第2個連接之前關閉第一個連接。 – James

+0

其實我在WCF服務上有這個錯誤。我有wcf服務和控制檯應用程序。基本上,wcf服務讀取多個數據庫併發送電子郵件。控制檯應用程序將每小時調用wcf服務。 – Tun

回答

0

EntityModel(OpenAccessContext派生類型)表示映射到數據庫中的表的概念模型。上面指定的連接字符串的不同之處在於「初始目錄」。對於兩個不同的數據庫使用相同的模型,只要域模型已知的對象(表格,列,約束條件等)都要求它們完全相同。

您可以指定兩個唯一的連接字符串,但這會導致OpenAccess爲您使用的每個唯一連接字符串維護一個唯一的工作空間(元數據,緩存,連接池等)。

如果您的服務正在查詢兩個不同的數據庫,則應該有兩個獨立的域模型來表示數據庫並使用適當的連接字符串實例化它們。