2017-09-25 44 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我已经在我自己的项目中添加了关于如何执行此操作的示例。 –