2012-11-13 46 views
0

我希望能夠「手動」管理Entity Framework如何連接到我的SQL數據庫。重寫Entity Framework如何連接到數據庫?

我想到的是沿着重寫一個函數來連接數據庫的方法。

public override SqlConnection getNewConnection() 
{ 
    // return the connection to be used 
} 

這可能嗎?

更新:下面是我根據我收到的答案寫:

System.Data.EntityClient.EntityConnection connection = new System.Data.EntityClient.EntityConnection("metadata=res://*/Models.ADLEntities.csdl|res://*/Models.ADLEntities.ssdl|res://*/Models.ADLEntities.msl;provider=System.Data.SqlClient;provider connection string="data source=myserver;initial catalog=mycatalog;integrated security=True;multipleactiveresultsets=True;App=EntityFramework""); 
entities = new Models.ModswebEntities(connection); 

我通過複製的web.config這是由VS嚮導生成的連接字符串組成的代碼生成EDMX對象。但是,當我運行此代碼時,出現Keyword not supported: 'data source'錯誤。我怎樣才能解決這個問題?

回答

0

有一個在的DbContext構造一個overload,您可以在一個的DbConnection,以及是否上下文擁有它傳遞:

public DbContext(DbConnection existingConnection,bool contextOwnsConnection) 

或者,如果你在一個EntityConnection使用的ObjectContext可以pass構造函數:

public ObjectContext(EntityConnection connection) 
+0

請原諒我的無知,但我已經通了實體的構造和性能在我的程序對象,我沒有看到一個叫的DbContext東西的內容?我如何訪問? –

+0

我假設你正在使用DbContext基礎連接數據庫..你是先做代碼還是先模型化,然後使用什麼版本的EF? –

+0

從我的web.config中,它看起來像我的項目使用EF4.4。至於我的數據庫對象,我使用VS嚮導從現有的SQL數據庫創建一個EDMX;絕對*不*代碼第一。 至於我的連接,問題是這樣的,我不得不使用Windows身份驗證來連接,但我需要確保系統爲連接模擬一個特定的帳戶,但不是其他任何東西。 –

相關問題