Sam*_*Sam 53 entity-framework-4 ef-code-first
如何告诉EF如何命名数据库以及将其放在何处?
如果Web.Config中没有连接字符串,它会尝试将其放在本地SQLEXPRESS服务器中,但我想将它放在已知的SQL Server上,并将其命名为我想要的.有什么建议?
fer*_*der 23
EF将在连接字符串中使用数据库的名称.如果要将连接字符串的名称与EF分离,则需要将连接字符串提供给构造函数.例:
public class DatabaseContext : DbContext
{
public DatabaseContext()
: base(ApplicationParameters.ConnectionStringName)
{
}
public DatabaseContext(string connectionStringName)
: base(connectionStringName)
{
}
}
Run Code Online (Sandbox Code Playgroud)
Ami*_*eri 17
在班上 :
public class Context : DbContext
{
//SET CONNECTION STRING NAME FOR DataBase Name :
public Context() : base("YourConnectionName") { }
public DbSet<Category> Categories { get; set; }
public DbSet<Product> Products { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在web.config中:
<connectionStrings>
<add name="YourConnectionName" connectionString="Data Source=A-PC\SQLEXPRESS;
Initial Catalog=MyDataBase; Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
谢谢ferventcoder.
参考=> http://brandonclapp.com/connection-strings-with-entity-framework-5-code-first/
正如已经提到的,您可以在应用程序的配置文件中使用名称(假设为"YourDBName")声明连接字符串,然后将其传递给DbContext基本构造函数调用(我会将其添加到答案中以提供完整的答案-已经对此给出了很好的答案)。
或者,您可以DbContext使用Database.Connection.ConnectionString属性在您的扩展类中以编程方式设置它。例如:
应用程序配置:
<!-- More.... -->
<!-- You can do this in a declarative way -->
<connectionStrings>
<add name="YourDBName"
connectionString="<Your connection string here>"
providerName="<Your provider here>" />
</connectionStrings>
<!-- More.... -->
Run Code Online (Sandbox Code Playgroud)
数据库上下文.cs:
public class DatabaseContext : DbContext
//Link it with your config file
public DatabaseContext () : base("YourDBName")
{
//And/Or you can do this programmatically.
this.Database.Connection.ConnectionString = "<Your Connection String Here>";
// More Stuff.....
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45456 次 |
| 最近记录: |