2012-03-15 68 views
2

我開始使用EF的MVC3應用程序。我們有一個包含200個表格的數據庫。我正在使用DBFirst方法。不同EntityFramework模型的連接字符串是否相同?

我的想法是爲應用程序中的不同區域創建EFModel,而不是將整個數據庫模式整合到一個大模型中。我現在遇到了一個問題,每個模型似乎都想要一個自己的連接字符串。我沒有成功設法改變爲只有一個常見的連接字符串。這不應該是可能的嗎?我在想這是在同一個數據庫在後臺所以...

或者我完全在這裏?我應該將所有表格拖放到一個大模型中嗎?或者接受我會得到很多連接字符串的事實?

任何見解?

回答

1

對於多個EDMX型號,不能有一個EF連接字符串,因爲EDMX metadata is part of the EF connection string

這不應該成爲你的問題,但所有這些連接字符串中包含嵌入式數據庫連接字符串,你可能想改變這種狀況在一個地方,而不是5.你可以,但是,更新數據庫連接字符串部分在運行時使用EntityConnectionStringBuilder。因此,您可以爲數據庫連接使用「常規」(非EF)連接字符串,然後在創建上下文時使用EntityConnectionStringBuilder將其替換爲EF連接字符串。

關閉我的頭頂,代碼看起來是這樣的:

var dbCS = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString; 
var model1CS = ConfigurationManager.ConnectionStrings["Model1ConnectionString"].ConnectionString; 
var ecsb = new EntityConnectionStringBuilder(model1CS); 
ecsb.ProviderConnectionString = dbCS; 

return new Model1Entities(ecsb.ToString()); 
0

也許你應該創建基本上下文,你可以在web.config中硬編碼連接字符串或它的名字。上下文父母可能只是al db的一部分,甚至可以在父上下文中描述一些常用實體,您應該在每個孩子中使用它們。

0

爲什麼你需要使用實體框架? 也許EF不適合你。

我建議您使用其他ORM,如Simple.Data

相關問題