2010-04-19 57 views

回答

11

尝试DbExtensions,可作为NuGet package获得。

+0

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

+0

@SomeNewbie发表您的评论[这里](https://github.com/maxtoroq/DbExtensions/issues),我会帮你解决的。 – 2015-04-07 05:07:48

0

我总是建立自己的...这是快速和容易的,你不必依赖第三方库。另外,它可以帮助你变得更加亲密的SQL。

+1

如果你是一个程序员,但我可以看到该库这是真的被用来驱动一个GUI它允许非程序员/数据输入人员针对数据库构建通用查询。他们永远无法做到*有效*,但有时候这很有用。 – 2010-04-20 00:01:51

+0

你介意分享吗? – SuperManSL 2014-10-30 21:53:18

+1

真的那么简单吗?你如何处理子选择?有很强的打字吗?加入?别名?你可以在where子句中分项,OR语句不会使AND语句无效?我可以继续。 – 2015-08-13 17:27:01

2

不是我所知道的(尽管这并不意味着肯定没有)。

实体框架呢?它允许查询,要建立和转换,要对实体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; 
+1

我正在使用的应用程序是在.Net 2.0中。所以EF不适合我。 – Amitabh 2010-04-20 09:10:20

+0

你可以使用一个完整的orm如NHibernate吗?它将使您能够通过Criteria API构建I查询。 – 2010-04-20 11:11:43

+0

我们在我们的应用程序中使用nHibernate 1.2,但是出于性能原因,此特定功能已绕过nHibernate。 – Amitabh 2010-04-20 12:40:05

2

任何问题的LINQ到SQL?

var dc = new YourDataContext(); 
var query = dc.TableName.Where(x=>x.MatchesYourPredicate); 
Console.WriteLine(dc.GetCommand(query).CommandText); 
+0

我需要的是.Net 2.0项目。 – Amitabh 2011-02-28 20:18:15

+0

这很糟糕。对不起。 – smartcaveman 2011-02-28 21:28:15

+1

此外,过滤元素并不总是知道 – Thea 2012-04-11 07:50:19

相关问题