entity-framework-4.3 - OnModelCreating和非自动迁移有何关系?

标签 entity-framework-4.3 entity-framework-migrations

当我添加一个与数据库有某些关系的新表,然后运行Add-Migration时,我看到Up方法中生成了代码以添加该表及其关系。
但是,我更喜欢使用OnModelCreating方法中的fluent API定义关系。这两种方法如何相互作用?我可以从Up方法中删除定义关系的代码吗?

最佳答案

他们每个人都有完全不同的目的:

  • OnModelCreating用于模型的嵌入式fluent-API定义。这些定义以及默认约定,数据注释和配置类构成了模型的完整定义。
  • 显式迁移定义必须执行的操作,以将数据库迁移到当前模型
  • 所需的形式

    现在,这两个之间的关系如何?迁移具有两个用于生成迁移代码的输入(UpDown方法)。一个输入是存储在数据库的__MigrationHistory表中的最后一个迁移记录。该记录包含代表数据库的序列化模型。此输入是可选的,因为第一次迁移必须在没有它的情况下进行。第二个输入是强制性的-通过执行当前程序集中的代码来检索当前模型=> Add-Migration将执行OnModelCreating以获取当前模型,并将其与从数据库中检索到的模型进行比较。比较的结果是显式迁移中UpDown方法的内容。

    关于entity-framework-4.3 - OnModelCreating和非自动迁移有何关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11177380/

    相关文章:

    c# - 在 Entity Framework 4.3 中设置命令超时

    c# - 为什么我的 EF Code First 预生成 View 无效?

    c# - 如何在一对多关系 EF 4.3.1 的导航集合中删除后正确清理

    c# - EF 6 启用迁移找不到上下文

    tfs - EF Code First 迁移以部署旧版本

    entity-framework-migrations - EF 4.3.1 - 代码优先自动迁移 - 如何指定列宽

    c# - 如何使用 EF 4.3 迁移运行一系列 sql 脚本?

    ef-code-first - EF迁移: Move Table from 2 Column PK to Single Column causes ALTER before DROP and fails

    entity-framework-4 - EF 迁移无法生成 Entity Framework 手动删除的表

    azure - 使用远程连接字符串在 Azure 上执行代码优先迁移