2010-04-19 50 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

相關問題