【问题标题】:ORM for dynamic tables in database数据库中动态表的ORM
【发布时间】:2011-01-08 08:14:21
【问题描述】:

我正在使用 SQL Server 数据库,在我的 C# 应用程序中,数据库中的表架构在运行时会发生变化。我期待使用任何可用于上述场景的 ORM 工具。请帮帮我。

【问题讨论】:

标签: c# sql-server nhibernate orm


【解决方案1】:

如果您使用 NHibernate,请查看'dynamic-component' mapping。它允许您映射字典中的列。这样,架构就可以在不重新编译应用程序的情况下进行更改。 (如果更改需要在不重新启动应用程序的情况下可见,则需要在更改映射后在您的程序中重新创建 NHibernate 会话工厂。)

【讨论】:

    【解决方案2】:

    为什么需要在运行时准确地修改架构?根据您尝试做的更好的解决方案可能是重新设计您的架构,因此不需要运行时更改。如果架构在运行时发生很大变化,那么一旦获得大量行,性能就会变得相当糟糕。

    【讨论】:

    • 如果架构发生变化,为什么性能会下降?如果您在 sql server 上创建 EAV 模型并用大量行填充,通常性能会降低。
    【解决方案3】:

    如果您期望少量的行/数据库大小,请使用上述 wiki 链接并使用 EAV 模型。

    如果你例如。存储 4mio 的人不要去。 :) 而是在运行时修改数据库模式。我们使用 subsonic 2.2 并在我们的核心中对其进行了扩展,以允许在运行时更改一些表模式。

    【讨论】:

      猜你喜欢
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多