我們正試圖爲EF項目使用存儲庫模式。用戶可以選擇三個獨立(但結構相同)的數據庫中的一個登錄(有一個用於培訓,一個用於測試,另一個用於生產)。如何在存儲庫的objectcontext中指定連接字符串
我們目前正在使用EF 4實現,並通過ADO.Net EntityObject生成器生成了我們的T4。我們的倉庫基類如下:
public class RepositoryBase<C> : IDisposable
where C : ObjectContext, new()
{
private C _DataContext;
public virtual C DataContext
{
get
{
if (_DataContext == null)
{
_DataContext = new C();
}
return _DataContext;
}
}
//other code cut for brevity...
}
我想我們想要的是修改「_DataConext = new C();」的能力。這樣它就可以使用在運行時生成的連接字符串指向正確的數據庫。不幸的是,像這樣傳遞連接字符串:_DataConext = new C(connectionString);是不允許的並導致此消息:「參數不能傳遞給在類型參數上使用的'New'。」
我可以在model.tt文件的代碼後面看到有三個構造函數:默認的無參數構造函數,具有EntityConnection參數的構造函數和具有連接字符串參數的第三個參數(我們想要使用的參數)。
問題是我們該如何去做這件事?任何幫助表示讚賞!
甜!我發佈這個問題,去洗手間,回到我的辦公桌和繁榮!我希望得到的確切答案。 – Gatmando
非常感謝! – Gatmando