【发布时间】:2013-01-04 23:16:08
【问题描述】:
在自动迁移设置和工作的情况下,我一切正常。我刚刚在我的域类中进行了一些外键更改,当我启动我的应用程序时,我得到了一个非法列“CreatedOn”异常。浏览我发现这个错误通常是由于从 ef 4 移动到 ef 5 并返回。我一直只使用 ef 5。我找不到任何错误原因,所以我决定回到基础。我关闭了迁移并将我的初始化程序设置为“DropAndCraeteAlways”。它删除了数据库,但没有创建新数据库。所以我进一步回到基础并完全删除了迁移并将初始化程序设置为“CreateIfNoneExists”。仍然没有创建数据库。我不知道还能尝试什么或如何调试。我得到的唯一例外是当我尝试初始化数据库时,我得到一个数据库未找到,这很明显。任何帮助将不胜感激。
【问题讨论】:
-
更多数据。我发现当使用“DropCreateDatabaseIfModelChanges”时,EF 首先删除数据库,然后当它发现模型更改时,它会尝试创建一个新数据库。但是,如果创建数据库时遇到一些编码错误的问题,则不会创建数据库。这使 EF 处于某种不确定状态,即使在删除可能导致创建问题的模型更改之后,它也不允许它创建数据库。
-
更多 - 无论如何重置 EF 以认为没有创建任何内容,以便它可以重新开始创建新数据库?回到默认的“CreateDatabaseIfNoneExists”在这种不确定状态下不起作用。
-
我也有同样的问题。我之前和现在多次首先使用代码,对于那个新项目,无论我尝试什么,EF 都不会创建表。很奇怪。