Entity framework 忽略集成测试的代码优先迁移

Entity framework 忽略集成测试的代码优先迁移,entity-framework,ef-code-first,sql-server-ce,entity-framework-migrations,Entity Framework,Ef Code First,Sql Server Ce,Entity Framework Migrations,我正试图将SQL Server CE 4.0设置为我的测试数据库,以便运行集成测试,如本文所述: 以下是我的解决方案中的所有项目: 单元测试 网站 数据访问层 核心 我在UnitTests项目的app.config文件中添加了SQL Compact CE 4.0引用和connectionString,然后尝试运行update database命令: 更新数据库-ProjectName DataAccessLayer-StartupProjectName UnitTests-详细 这对于大多数

我正试图将SQL Server CE 4.0设置为我的测试数据库,以便运行集成测试,如本文所述:

以下是我的解决方案中的所有项目:

  • 单元测试
  • 网站
  • 数据访问层
  • 核心
我在UnitTests项目的app.config文件中添加了SQL Compact CE 4.0引用和connectionString,然后尝试运行update database命令:

更新数据库-ProjectName DataAccessLayer-StartupProjectName UnitTests-详细

这对于大多数迁移来说都很好,但在完成之前它会停止,然后我会遇到以下错误:

SQL Server Compact不支持直接列重命名。到 在SQL Server Compact中重命名列,需要重新创建它


有没有一种方法可以关闭迁移,只为单元测试项目重新创建整个数据库

找到了。只需在单元测试项目上设置数据库初始值设定项:

System.Data.Entity.Database.SetInitializer(新的DropCreateDatabaseAlways())


我从单元测试项目的FixtureSetup方法中调用它

找到了。只需在单元测试项目上设置数据库初始值设定项:

System.Data.Entity.Database.SetInitializer(新的DropCreateDatabaseAlways())

我从单元测试项目的FixtureSetup方法中调用它