更新数据库始终在中更新.实体框架中的SQLEXPRESS

本文关键字:更新 框架 SQLEXPRESS 实体 数据库 | 更新日期: 2023-09-27 18:27:07

我有一个解决方案项目,在该项目中,我在类库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,使用的是代码优先方法EF)

现在的问题是,当我运行命令"更新数据库-详细"时,它不是在上面的DB中创建表,而是在.'SQLExpress中创建,我在我的解决方案中没有提到过

当我发出这样的命令时

Update-Database -Verbose -ConnectionStringName "DefaultConnection"

它给了我信息

"在应用程序配置文件。"

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

搞不清楚,出了什么问题。

更新数据库始终在中更新.实体框架中的SQLEXPRESS

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

由于它没有得到连接字符串。默认情况下,VS 10中的EF框架会假设。''SQLEXPRESS作为默认数据库,并在那里创建表。

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

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

2) 在dbContext中使用base("DefaultConnection")的说明如下

base(System.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)