就是这样的。是否有一个用于.Net的动态Sql构建器库?
http://code.google.com/p/squiggle-sql/wiki/Tutorial。
对于需要从UI的用户输入中构建复杂sql的情况,这是必需的。目前在我正在使用的项目中使用的字符串操作看起来很丑并且难以维护。
就是这样的。是否有一个用于.Net的动态Sql构建器库?
http://code.google.com/p/squiggle-sql/wiki/Tutorial。
对于需要从UI的用户输入中构建复杂sql的情况,这是必需的。目前在我正在使用的项目中使用的字符串操作看起来很丑并且难以维护。
尝试DbExtensions,可作为NuGet package获得。
DbExtensions易于使用。但是,它有一些基本的设计问题。首先,它没有太多的INSERT IGNORE INTO功能。其次,它非常僵硬。当一个人执行INSERT_INTO时,他不能执行INSERT_INTO({0}({1},{2}),tableName,col1,col2),因为这会在参数周围添加单引号。相反,你必须在输入字符串中使用重载和基本硬编码。另一个例子是做VALUES,你必须做VALUES(some_string)或VALUE({0} = {1},col1,val1)。这样说,这不是一个不好的库,但它留下了许多不足之处。 – 2015-04-07 03:28:06
@SomeNewbie发表您的评论[这里](https://github.com/maxtoroq/DbExtensions/issues),我会帮你解决的。 – 2015-04-07 05:07:48
我总是建立自己的...这是快速和容易的,你不必依赖第三方库。另外,它可以帮助你变得更加亲密的SQL。
如果你是一个程序员,但我可以看到该库这是真的被用来驱动一个GUI它允许非程序员/数据输入人员针对数据库构建通用查询。他们永远无法做到*有效*,但有时候这很有用。 – 2010-04-20 00:01:51
你介意分享吗? – SuperManSL 2014-10-30 21:53:18
真的那么简单吗?你如何处理子选择?有很强的打字吗?加入?别名?你可以在where子句中分项,OR语句不会使AND语句无效?我可以继续。 – 2015-08-13 17:27:01
不是我所知道的(尽管这并不意味着肯定没有)。
实体框架呢?它允许查询,要建立和转换,要对实体SQL:
customers.OrderBy(c => c.Name).Skip(10).Take(20)
生成:
SELECT value c
FROM NW.Customers AS c
ORDER BY c.Name skip 10 limit 20;
任何问题的LINQ到SQL?
var dc = new YourDataContext();
var query = dc.TableName.Where(x=>x.MatchesYourPredicate);
Console.WriteLine(dc.GetCommand(query).CommandText);
我需要的是.Net 2.0项目。 – Amitabh 2011-02-28 20:18:15
这很糟糕。对不起。 – smartcaveman 2011-02-28 21:28:15
此外,过滤元素并不总是知道 – Thea 2012-04-11 07:50:19
我能找到一个非常好的库,用于在.Net中创建动态sql。
你可以尝试http://sqlkata.vivida-apps.com,C#的SQL查询工具 – amd 2017-05-24 09:04:18