Entity framework 在LINQPad查询中创建SQL Server CE.sdf文件时出现异常故障

Entity framework 在LINQPad查询中创建SQL Server CE.sdf文件时出现异常故障,entity-framework,sql-server-ce,linqpad,Entity Framework,Sql Server Ce,Linqpad,我将LINQPad与一个自定义程序集一起使用,该程序集后面有一个SQL Server CE数据库,该数据库当时可能存在,也可能不存在。自定义程序集首先使用实体框架代码进行自动迁移,并包括从MigrateDatabaseToLatestVersion继承的简单初始化器,如果数据库不存在,该初始化器将创建数据库。我已经用它工作了几个星期,它工作得很好 今天早上,在我意识到日志中的两个事件之间发生了迁移之前,一个小故障被证明是很难诊断的,之后我决定最好在应用迁移时记录数据库自己的日志表。为此,我在初始

我将LINQPad与一个自定义程序集一起使用,该程序集后面有一个SQL Server CE数据库,该数据库当时可能存在,也可能不存在。自定义程序集首先使用实体框架代码进行自动迁移,并包括从
MigrateDatabaseToLatestVersion
继承的简单初始化器,如果数据库不存在,该初始化器将创建数据库。我已经用它工作了几个星期,它工作得很好

今天早上,在我意识到日志中的两个事件之间发生了迁移之前,一个小故障被证明是很难诊断的,之后我决定最好在应用迁移时记录数据库自己的日志表。为此,我在初始化器中的
Seed()
方法中添加了几行代码,以实例化我一直在使用的通用存储库/工作单元容器,向logs表中添加一条记录,并将更改提交回数据库。repo有一个标志,表明它不拥有底层上下文,因此我可以确定它不会处理我将尝试使用的上下文

现在,如果我更改了模型(我通过重复注释和取消注释上下文类上的
DbSet
属性之一来进行测试),那么会插入一条记录以说明发生了迁移。正是我想要的。但是,如果.sdf文件不存在,LINQPad将显示以下错误:

基础提供程序在打开时失败
InnerException:找不到数据库文件。检查数据库的路径

虽然错误消息完全是不言自明的(因为文件不在那里,所以找不到该文件),但不清楚的是为什么它不象以前那样创建文件。真正奇怪的是,如果我重新编译自定义程序集,然后再次运行LINQPad查询,那么LINQPad将创建
.sdf
,并愉快地继续。即使对程序集的更改不相关,也会发生这种情况。在测试中,我运行了查询,看到它失败,然后在repository类中的注释末尾添加了一个空格,重新编译了它,然后再次运行查询。。。它成功了。我完全无法解释这本该有什么不同

此时,可能值得一提的是,我在这里处理的“自定义程序集”是LINQPad自己的“我的扩展名”文件。是的,我在扩展文件中编写了一个带有代码优先自动迁移初始化和通用规范模式事务存储库的数据上下文。是的,我意识到这可能不是它的目的。我很无聊,想测试一些东西。不管怎么说,这可能在某个地方引起了一些奇怪的事情。也许没有,但我想我还是提一下以防万一