【问题标题】:Dynamically load Entity Configurations in EF CodeFirst在 EF Code First 中动态加载实体配置
【发布时间】:2011-11-04 08:35:35
【问题描述】:

我需要根据数据库模式动态创建具有流利 API 的复合键。 我用谷歌搜索解决方案,但找不到任何解决方案。 有什么建议吗?

【问题讨论】:

  • 动态是什么意思?映射是静态的。
  • 我已经创建了带有数据注释的普通 POCO。我使用 Fluent API 进行配置。但我想从数据库中读取 pk 或 uk 并将其映射。我只知道这样做。 HasKey(p => new { p.COMMODITY_ID });有什么办法可以动态完成吗?
  • 您是否正在寻找来自EF Power Tools 的逆向工程功能?否则你的问题没有意义。
  • 更正,我的意思是“我创建了没有数据注释的普通 POCO”。是的,我的意思是逆向工程。但是我的数据库正在发展。我不想将这些配置与我的 POCO 绑定,也不想在每次数据库更改时创建它映射。我正在寻找一种从数据库中读取元数据并动态附加它的方法。

标签: entity-framework-4.1 fluent-interface


【解决方案1】:

不断发展的数据库 = 不断发展的类 = 不断发展的映射。这没有自动化,因为您的类不必是数据库的 1:1 图像,而是由映射来描述它们之间的关系。

即使进行 1:1 自动化也是项目本身。这是一项相当复杂的任务,构建它需要更长的时间,然后手动改进映射。也没有理由这样做,因为它已经存在于EF Power Tools

如果您仍然想这样做,请访问在线 SQL 书籍并了解 SQL 如何持久保存有关表、列、关系、约束等的信息。然后了解如何使用 T4 模板或 CodeDom 生成类。使用这两组信息来获取数据库的描述并相应地创建映射(如果您想对现有的类进行映射,这将更加困难。)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2011-11-29
    • 1970-01-01
    • 2017-07-02
    • 2011-06-12
    • 1970-01-01
    相关资源
    最近更新 更多