我们有三个项目。
这两个网站项目都引用了
Company.Domain
。我们的EF 5
DbContext
位于Company.Domain.Data.EntityFramework
中,它看起来像这样:using System.Data.Entity;
using Company.Domain.Data.EntityFramework.Entities;
namespace Company.Domain.Data.EntityFramework.
{
public class CompanyEntities : DbContext
{
public DbSet<Notification> Notifications { get; set; }
public DbSet<Report> Reports { get; set; }
public DbSet<ReportSection> ReportSections { get; set; }
public DbSet<ReportPage> ReportPages { get; set; }
// brevity brevity
}
}
过去,我们已经启用了迁移并成功使用了该工具,所以我不确定为什么现在遇到问题。我们的迁移配置位于
Company.Domain.Data.EntityFramework.Migrations
中,如下所示:namespace Company.Domain.Data.EntityFramework.Migrations
{
using System;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq;
using Company.Domain.Data.EntityFramework;
public class Configuration : DbMigrationsConfiguration<CompanyEntities>
{
public Configuration()
{
MigrationsDirectory = @"Data\EntityFramework\Migrations";
AutomaticMigrationsEnabled = false;
}
protected override void Seed(CompanyEntities context)
{
// empty at the moment
}
}
}
然后,我们在
App.config
项目的根目录中有一个Company.Domain
文件,它看起来像这样:<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<connectionStrings>
<add name="CompanyEntities" providerName="System.Data.SqlClient" connectionString="Data Source=devsql;Initial Catalog=CompanyEntities;uid=XXXXX;pwd=XXXXX;MultipleActiveResultSets=True;" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
我们的数据库位于网络上的另一台服务器上。我可以在SQL Server Management Studio中连接到它,并且我们的应用程序可以在运行时很好地连接。但是,当我尝试运行
add-migration
甚至update-database
时,出现以下错误:http://content.screencast.com/users/Chevex/folders/Snagit/media/80fbfd6a-4956-407f-b88f-d5a53a9e5feb/03.21.2013-10.25.png
我什至将我的更改恢复到模型,然后运行
update-database
只是看它是否会显示“数据库正在最新迁移”,但仍然出现上述错误。我一遍又一遍地倒在App.config
中的连接字符串上。我不知道为什么迁移无法连接,但是我们的两个网站项目在运行时都能正常工作。迁移过去一直有效。下面是在解决方案资源管理器中的迁移与在数据库的__MigrationHistory
表中找到的迁移相比。http://content.screencast.com/users/Chevex/folders/Snagit/media/7abeaa46-ff0f-4817-a0d7-1adb086e8f0c/03.21.2013-10.30.png
http://content.screencast.com/users/Chevex/folders/Snagit/media/3c6ac54d-f63d-417f-9253-39b6a8fea85d/03.21.2013-10.32.png
看来我应该能够运行
update-database
并告诉我它是最新的,但我收到了该错误。据我了解,当我运行迁移命令时,迁移不应引起我们两个网站项目的注意,但是为了以防万一,我也将它们放在了Web.config文件中。连接字符串与App.config相同。
编辑:
我什至尝试从项目中完全卸载和删除EF 5软件包,然后重新安装。相同的问题> :(
最佳答案
您的启动项目是否包含web.config或app.config,因为EF使用启动项目作为连接字符串的源
关于c# - EF 5迁移无法连接到我们的数据库,即使它在运行时也很好,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15553199/