实体框架删除数据库InvalidOperationException
本文关键字:InvalidOperationException 数据库 删除 框架 实体 | 更新日期: 2023-09-27 18:30:02
嘿,伙计们,我好像搞不懂这个。有什么想法吗?
在我的项目中,我试图使用EF6作为CRUD的方法。当我为数据访问部分进行单元测试时,我会删除一个SQLServercompactDB并从头开始创建它,以确保测试干净。我正在使用以下代码。
[SetUp]
public void Setup()
{
//instantiate the test db that we will use to run persistence testing.
Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");
context = new RTBComicsDataContext(GetTestDbName());
context.Database.Delete();
context.Database.Create();
}
上面看到的测试DB名称函数返回以下内容:
"Data Source=" +(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)) + @"''RTB.Data.Tests.Db.sdf;Persist Security Info=False";
这会在调用时生成一个无效操作异常,我不太确定原因。
内部异常消息:序列不包含匹配元素
我至少找到了解决问题的方法。这似乎与将测试保存到本地机器上的sql server CE数据库有关。
如果我把这个函数指向一个实际的sql服务器实例,它就可以正常工作。