我有一个测试dbcontext,我用它进行集成测试,它有未决的更改。这是在这个项目中:app.WebApi.Integration实体框架代码优先 - 更新不同项目中的数据库
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using app.Web.Data;
using app.Web.Model.Entities;
namespace app.WebApi.Integration.Data
{
public class IntegrationTestDbContext : DbContext, IDbContextFactory<IntegrationTestDbContext>
{
public IntegrationTestDbContext(string conn = "DefaultConnection")
: base(conn)
{
Configuration.LazyLoadingEnabled = false;
}
public IntegrationTestDbContext() { }
public virtual IDbSet<Question> Questions { get; set; }
public virtual IDbSet<Answer> Answers { get; set; }
public virtual void MarkAs(object item, EntityState entityState)
{
Entry(item).State = entityState;
}
public IntegrationTestDbContext Create()
{
return new IntegrationTestDbContext();
}
}
}
但我的迁移是在一个单独的项目:app.Web.Data。有谁知道ef命令,我可以通过其他项目的迁移更新IntegrationTestDbContext?
难道我已了解正确的呢?其他项目中的迁移历史记录(迁移文件),并且您有两个用于生产和一个用于测试的数据库上下文? –
@BassamAlugili目前我们有两个单独的数据库上下文指向相同的SQL服务器数据库。其中一个数据库上下文被我们的集成测试使用,并且仅在这个项目中出于这个原因。如果我尝试更新集成上下文的迁移,它说有未决的更改。我想知道是否可以使用另一个程序集中的迁移类。 –