【发布时间】:2010-02-10 15:06:19
【问题描述】:
是否可以使用 nHibernate 或实体框架或其他任何东西来生成插入或更新我已映射到表的对象所需的 SQL?我正在考虑从这些 POCO 类生成 SQL 脚本,而不是直接针对数据库运行。
这里的想法是我使用了大约 2000 多行 SQL 脚本,并制作了一个基于 Python 的 DSL,它为我们做了很多工作。我现在有一个 C# 应用程序,它加载 IronPython 并“编译”Python 脚本,生成所有必要的对象。我这里有一个大约 100 行的原型脚本。现在,我需要实际生成 SQL 脚本。
我可以使用 nVelocity 之类的东西,但如果这个项目成功,我想为数据库运行长期敞开大门。我有大约 30 个表,每个表有几十列要编写脚本。
我发现了这个,但它似乎是在生成数据库表架构,而不是编写插入和更新:https://forum.hibernate.org/viewtopic.php?f=25&t=1000334
SchemaExport 上的文档没有提供很多信息。
建议/想法?
【问题讨论】:
-
我知道这是一个老问题了。并且有很多方法可以实现您正在寻找的东西(最常见的一种是 ORM),但 ORM 并不总是最好的解决方案(网上关于这个主题的许多讨论) - 我自己 - 我喜欢 micro-orms,但最大的它们的缺点是您必须自己编写 SQL 查询 - 为了解决这个问题,我决定编写一个库来从 poco 对象生成 SQL(无需接触或不必从 DAL 层引用其他库)。想听听你的想法:github.com/developer82/Poco.Sql