【发布时间】:2011-09-22 03:32:51
【问题描述】:
我正在使用实体框架。
在我的一个单元测试中,我有这样一行:
this.Set<T>().Add(entity);
在执行该行时,我得到:
System.InvalidOperationException : 模型支持 'InvoiceNewDataContext' 上下文自数据库被更改以来已更改 创建。手动删除/更新数据库,或调用 Database.SetInitializer 与 IDatabaseInitializer 实例。为了 例如,DropCreateDatabaseIfModelChanges 策略将 自动删除并重新创建数据库,并可选择为其播种 使用新数据。
其实我已经删除了数据库并删除了连接字符串。
我很惊讶在添加时会发生此错误,因为在我保存数据并发现没有数据库之前我不希望它发生。
在我之前在单元测试期间创建的项目/解决方案中,我能够添加到上下文中以用于测试目的,而无需实际调用 SaveChanges。
有人知道为什么我的最新项目/解决方案会出现这种情况吗?
【问题讨论】:
-
您是在应用程序启动还是在测试初始化方法中使用初始化策略?
removed the coonnectionstring是什么意思? -
是的,我正在使用初始化策略,并且在测试项目的 app.config 中有一个连接字符串。我希望测试在没有数据库的情况下运行,所以我删除了这个连接字符串并注释掉了初始化策略。
标签: unit-testing entity-framework