gpt4 book ai didi

c# - 自数据库创建以来支持 'MyContext' 上下文的模型已更改

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:19 25 4
gpt4 key购买 nike

我在运行单元测试时遇到以下错误(支持“MyContext”上下文的模型自数据库创建以来已更改)

在我的上下文构造函数中,我设置了

Database.SetInitializer<MyContext>(null);

在我的单元测试中,我正在模拟上下文。我也将这段代码添加到单元测试中,但它仍然失败。除了 Database.SetInitializer<MyContext>(null); 之外还有什么需要做的吗?

我的上下文在这里

 public class MyContext : DbContext
{
public MyContext () : base("MyContext")
{
Database.SetInitializer<MyContext>(null);
}

public virtual DbSet<User> Users { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().ToTable("Users");
}
}

我在单元测试中的模拟

  var _context = new Mock<MyContext>();
Database.SetInitializer<MyContext>(null);
_classUnderTest = new Repo(_context.Object);

这里报错

  _context.Entry(user).State = EntityState.Added; 

最佳答案

我不确定我是否理解了这个问题,但如果您使用 Entity Framework 代码优先方法,在模型更改后,尝试在您的应用程序中启用迁移。它可以使用包管理器控制台来完成..

有关详细信息,请参阅此链接。 MSDN link

关于c# - 自数据库创建以来支持 'MyContext' 上下文的模型已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36179542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com