C# 更新数据库始终在实体框架中的\SQLEXPRESS中更新

C# 更新数据库始终在实体框架中的\SQLEXPRESS中更新,c#,asp.net,asp.net-mvc,entity-framework,C#,Asp.net,Asp.net Mvc,Entity Framework,我有一个解决方案项目,其中我在类库项目中实现了实体框架。 我在同一类库中有一个App.config文件,在该类库中我将连接字符串指定为 <connectionStrings> <add name="DefaultConnection" connectionString="Data Source=DDC5-D-4R03T72;Initial Catalog=ServiceAdaptor;User ID=sa;Password=pwd;MultipleActiveR

我有一个解决方案项目,其中我在类库项目中实现了实体框架。 我在同一类库中有一个App.config文件,在该类库中我将连接字符串指定为

<connectionStrings>
<add name="DefaultConnection"
        connectionString="Data Source=DDC5-D-4R03T72;Initial Catalog=ServiceAdaptor;User ID=sa;Password=pwd;MultipleActiveResultSets=True;Integrated Security=False"

      providerName="System.Data.SqlClient"/>
 </connectionStrings>
它给了我信息

在中找不到名为“DefaultConnection”的连接字符串 应用程序配置文件。“

我的结论是更新数据库命令无法从配置文件中获取连接字符串


无法找出问题所在。

最后我找到了解决方案,问题出在这里,不知何故更新数据库命令在Web.Config文件中搜索连接字符串,而不是在App.Config文件中,因为在我的例子中,我有一个类库项目,它有App.Config文件

由于默认情况下它没有获取连接字符串,VS 10中的EF框架将假定。\SQLEXPRESS为默认数据库,并在那里创建表

因此,我找到的解决方案是:

1) 在项目中添加参考系统配置

2) 不需要在dbContext中使用base(“DefaultConnection”),而是按如下方式使用


base(System.Configuration.ConfigurationManager.ConnectionString[“DefaultConnection”].ConnectionString)

所以你的ConnectionString在你的启动项目中,对我来说似乎是对的……感谢Alex的快速努力,但并不像你说的那样。。启动项目配置文件中没有问题。。它位于实现我的上下文的同一个类库项目中。问题是类库项目具有更新数据库命令未标识的连接字符串。我们需要做一些更改才能从App.config获得它。如果它是web.config,它可以正常工作,没有任何问题。
Update-Database -Verbose -ConnectionStringName "DefaultConnection"