我在我的項目中使用SQLCLR,對於記錄,我對此非常滿意。但是,我找不到任何良好的數據訪問模式的良好信息來源。SQLCLR中的數據訪問模式
通常我做的.NET和SQL之間的通信使用存儲過程,因爲我總是想爲我的數據庫的API。但是,在這種情況下.net代碼是API的一部分,所以SP看起來很糟糕。
LINQ2SQL不SQL服務器存在(儘管它可以通過做事情的DBA不會喜歡裝),所以它不是一個選項。
我現在有是我的代碼標準的ADO.NET代碼雜亂像
using (SqlCommand cmd = c.CreateCommand()) {
cmd.CommandText = "SELECT ... FROM ...";
using (SqlDataReader rdr = cmd.ExecuteReader()) {
DoSomething(rdr);
}
}
,雖然,它的工作原理,它只是似乎很喜歡錯誤的方式來做到這一點。
其他人怎麼做到的?
其實我做的是幾乎相同的自己在非SQLCLR,但我的解決方案是依賴於表達式樹(這是在System.Core程序定義)來生成where子句。你如何生成你的where子句? – erikkallen 2009-10-08 09:39:06
到目前爲止,我從不需要生成複雜的表達式。我總是通過其中一個鍵查找項目,並從XSLT生成簡單的查找方法(WHERE key @ value)。從你對喬納森的回答來看,你在運行時需要一些東西,而不是在編譯時。 – 2009-10-08 15:15:52
不,在這種情況下,我對這些簡單查詢感興趣,查找我在複雜邏輯中使用的元數據。 – erikkallen 2009-10-09 18:54:06