2017-09-25 46 views
0

我看到很多類似的問題,但答案是一樣的。如何傳遞原始連接字符串

public class myContext(string connectionName) : base(connectionName) 
{ 
} 

的問題是他們所有的答案指定從他們的.config衍生就像一個連接名稱:

<connectionStrings> 
    <add name="connectionName" 
     connectionString="data source=server\database;initial catalog=catalog;persist security info=True;user id=user;password=password;MultipleActiveResultSets=True;App=EntityFramework" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

如果我想通過這樣的

"Server=127.0.0.1;Database=sampleDB;User Id=foo; Password=bar" 

什麼像

"Server=127.0.0.1;Port=440;Database=mysqlDB;Uid=root; Pwd=root123;" 

回答

2

DbContext的c'tor採用名爲nameOrConnectionString的字符串。

documentation

參數:
nameOrConnectionString:
無論是數據庫的名稱或連接字符串。

因此,您可以同時傳遞名稱到連接字符串或直接連接字符串。

傳遞一個名字:

傳遞一個名字DbContext(例如,在你的web.config),寫類似:

new myContext("name=connectionName") 

傳遞一個連接字符串:

要傳遞文字連接字符串,請寫下如下內容:

new myContext("Server=127.0.0.1;Database=sampleDB;User Id=foo; Password=bar") 
+1

打我半秒。 – Strikegently

+1

但我如何告訴構造函數,它是一個原始連接字符串,而不是一個命名的? – anaval

+0

@anaval我已經在我自己的項目中添加了關於如何執行此操作的示例。 –