更新 - 数据库始终在实体框架中的。\ SQLEXPRESS中进行更新

时间:2015-12-17 13:37:33

标签: c# asp.net asp.net-mvc entity-framework

我有一个解决方案项目,其中我在类库Project中实现了Entity框架。 我在同一个类库中有一个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>

(我正在使用Visual Studio 2010,我正在使用Code-First Approach EF)

现在问题是当我运行命令“Update-Database -Verbose”时, 它不是在上面的DB中创建表,而是在.\SQLExpress中创建的,我在我的soln中的任何地方都没有提到过)

当我发出命令时

Update-Database -Verbose -ConnectionStringName "DefaultConnection"

它给了我留言

  

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

我得出的结论是我的Update-Database命令无法从配置文件中获取连接字符串。

无法弄清楚,出了什么问题。

1 个答案:

答案 0 :(得分:1)

最后我找到了解决方案,这里有问题,不知何故,Update-database命令正在搜索Web.Config文件中的连接字符串,而不是在App.Config文件中,就像我的情况一样,我有具有App.config文件的类库项目。

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

所以我找到的解决方案是:

1)在项目中添加参考System.Configuration

2)在dbContext中使用base(&#34; DefaultConnection&#34;),请使用如下

碱(System.Configuration.ConfigurationManager.ConnectionStrings [&#34; DefaultConnection&#34]。ConnectionString中)