【发布时间】:2012-11-16 13:20:01
【问题描述】:
我注意到,当我使用 EF 创建模型优先数据库时,它会忽略 web.config 连接字符串并在后台做自己的事情。然后我找到了一种在构造函数中设置自己的连接字符串的方法。
public class MainDataContext : DbContext
{
public MainDataContext()
{
this.Database.Connection.ConnectionString = "MY CONNECTION STRING THAT IS ACTUALLY USED";
}
}
问题:如何强制/设置它以使用来自 web.config 的连接字符串?
有人告诉我,如果你像你的数据上下文一样命名你的连接字符串,它会起作用,但它不适合我。我肯定知道如果我将其命名为 DefaultConnectionString 它将不起作用。
<add name="MainDataContext" providerName="System.Data.SqlClient"
connectionString="Server=(LocalDB)\\v11.0;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|ProjectDB.mdf;" />
当我尝试从控制台执行update-database -v -f 时发生错误。
【问题讨论】:
-
您使用的是哪个版本的 EF?
-
@MMK 5.0? VS2012(MVC4)自带的那个
-
尝试类似 public MainDataContext() :base(ConfigurationManager.ConnectionStrings["MainDataContext"]) { }
-
@MMK 我得到这个错误人
cannot convert from 'System.Configuration.ConnectionStringSettings' to 'System.Data.Entity.Infrastructure.DbCompiledModel:| -
试试这个:public MainDataContext() :base("MainDataContext") { }
标签: c# asp.net asp.net-mvc entity-framework web-config