【发布时间】:2011-01-08 08:14:21
【问题描述】:
我正在使用 SQL Server 数据库,在我的 C# 应用程序中,数据库中的表架构在运行时会发生变化。我期待使用任何可用于上述场景的 ORM 工具。请帮帮我。
【问题讨论】:
标签: c# sql-server nhibernate orm
我正在使用 SQL Server 数据库,在我的 C# 应用程序中,数据库中的表架构在运行时会发生变化。我期待使用任何可用于上述场景的 ORM 工具。请帮帮我。
【问题讨论】:
标签: c# sql-server nhibernate orm
如果您使用 NHibernate,请查看'dynamic-component' mapping。它允许您映射字典中的列。这样,架构就可以在不重新编译应用程序的情况下进行更改。 (如果更改需要在不重新启动应用程序的情况下可见,则需要在更改映射后在您的程序中重新创建 NHibernate 会话工厂。)
【讨论】:
为什么需要在运行时准确地修改架构?根据您尝试做的更好的解决方案可能是重新设计您的架构,因此不需要运行时更改。如果架构在运行时发生很大变化,那么一旦获得大量行,性能就会变得相当糟糕。
【讨论】:
如果您期望少量的行/数据库大小,请使用上述 wiki 链接并使用 EAV 模型。
如果你例如。存储 4mio 的人不要去。 :) 而是在运行时修改数据库模式。我们使用 subsonic 2.2 并在我们的核心中对其进行了扩展,以允许在运行时更改一些表模式。
【讨论】: