【问题标题】:EF 5.0 Code First Quit Creating DatabaseEF 5.0 Code First 退出创建数据库
【发布时间】:2013-01-04 23:16:08
【问题描述】:

在自动迁移设置和工作的情况下,我一切正常。我刚刚在我的域类中进行了一些外键更改,当我启动我的应用程序时,我得到了一个非法列“CreatedOn”异常。浏览我发现这个错误通常是由于从 ef 4 移动到 ef 5 并返回。我一直只使用 ef 5。我找不到任何错误原因,所以我决定回到基础。我关闭了迁移并将我的初始化程序设置为“DropAndCraeteAlways”。它删除了数据库,但没有创建新数据库。所以我进一步回到基础并完全删除了迁移并将初始化程序设置为“CreateIfNoneExists”。仍然没有创建数据库。我不知道还能尝试什么或如何调试。我得到的唯一例外是当我尝试初始化数据库时,我得到一个数据库未找到,这很明显。任何帮助将不胜感激。

【问题讨论】:

  • 更多数据。我发现当使用“DropCreateDatabaseIfModelChanges”时,EF 首先删除数据库,然后当它发现模型更改时,它会尝试创建一个新数据库。但是,如果创建数据库时遇到一些编码错误的问题,则不会创建数据库。这使 EF 处于某种不确定状态,即使在删除可能导致创建问题的模型更改之后,它也不允许它创建数据库。
  • 更多 - 无论如何重置 EF 以认为没有创建任何内容,以便它可以重新开始创建新数据库?回到默认的“CreateDatabaseIfNoneExists”在这种不确定状态下不起作用。
  • 我也有同样的问题。我之前和现在多次首先使用代码,对于那个新项目,无论我尝试什么,EF 都不会创建表。很奇怪。

标签: entity-framework-5


【解决方案1】:

如果实体框架无法弄清楚如何解决关系,它可能会有点脾气暴躁——你有更多关于错误的细节吗?请记住,您看到的最终错误可能是链中早期故障的结果。

您可以通过在包管理器控制台中运行 Update-Database 命令来查看更多信息。

可能值得一看 Fluent Relationship API,它是为 4.1 编写的,但我相信它大致相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    相关资源
    最近更新 更多