如何将连接字符串传递给实体框架的代码优先DbContext?当DbContext和web.config中的连接字符串位于同一项目中且以相同的方式命名时,我的数据库生成正常工作。但是现在我需要将DbContext移到另一个项目,因此我正在测试将连接字符串传递给它,如下所示:模型与背景public class Dinner{ public int DinnerId { get; set; } public string Title { get; set; }}public class NerdDinners : DbContext{ public NerdDinners(string connString) : base(connString) { } public DbSet<Dinner> Dinners { get; set; }}行动 public ActionResult Index() { var db = new NerdDinners(ConfigurationManager.ConnectionStrings["NerdDinnerDb"].ConnectionString); var dinners = (from d in db.Dinners select d).ToList(); return View(dinners); }Web配置<connectionStrings> <add name="NerdDinnerDb" connectionString="Data Source=|DataDirectory|NerdDinners.sdf" providerName="System.Data.SqlServerCe.4.0"/> </connectionStrings>如果我在操作中设置了一个断点,则分析db,连接字符串在那里,但是它不会创建或找到数据库或任何东西。建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。(提供者:命名管道提供程序,错误:40-无法打开与SQL Server的连接)
3 回答
慕田峪9158850
TA贡献1794条经验 获得超7个赞
在您的DbContext中,为您的DbContext创建一个默认的构造函数,并继承基类,如下所示:
public myDbContext()
: base("MyConnectionString") // connectionstring name define in your web.config
{
}
- 3 回答
- 0 关注
- 618 浏览
添加回答
举报
0/150
提交
取消