就是這樣的。是否有一個用於.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