0

我有兴趣为我使用的 CMS 编写类似 SQL 的查询语法。这个想法是 CMS 查询可以用类似 SQL 的语法编写,我会将其转换为通过 CMS API 执行。

不会有字段或表选择,所以我需要一些方法来从中获得:

SELECT WHERE Something = 'something' AND (SomethingElse != 'something' OR AnotherThing == 'something')

基本上,我需要一些方法来根据它们的括号和 AND/OR 正确分组 WHERE 子句。

是否有一些框架可以做到这一点?什么时候完成的一些例子?我不想在这里重新发明轮子,而且我知道过去必须有人这样做。

4

1 回答 1

1

答案是肯定的,有许多框架可以模拟 SQL 并转换为 SQL。Linq 和各种 Linq 翻译器就是一个很好的例子。准确了解您正在使用的 CMS 以及您正在开发的语言和平台会很有帮助。一些支持代码查询的 .NET ORM 是:

NHibernate - 允许在字符串中使用称为 HQL 的类似 SQL 的语言,或者使用表达式列表和 Linq 进行更多基于代码的查询构造。

Linq2SQL - 即将推出,但对于您更简单的应用程序来说应该没问题。该框架生成在表和域对象之间映射的 DAO 类,您可以使用编码的 Linq 查询来处理这些类,就像真正的表一样。

当然,您可以使用带有字符串 SQL 查询的优秀的原版 ADO.NET。这有很多缺点,但是如果你想在你的代码中进行查询,为什么不让它们成为真正的 SQL 呢?如果你想隐藏你的表结构,你可以在提交查询之前翻译表名,这样 web 层中包含的 SQL(颤抖)就不会针对你的数据库运行。

于 2010-09-04T01:45:51.607 回答