如何有效地將直接SQL查詢與Linq To SQL查詢結合起來? Linq To SQL不支持XQuery。所以我必須將SQL的結果與XQuery和基於列的Linq To SQL結合起來?將SQL與XQuery和Linq合併爲SQL
任何指針表示讚賞。謝謝!
如何有效地將直接SQL查詢與Linq To SQL查詢結合起來? Linq To SQL不支持XQuery。所以我必須將SQL的結果與XQuery和基於列的Linq To SQL結合起來?將SQL與XQuery和Linq合併爲SQL
任何指針表示讚賞。謝謝!
Chris Cavanagh有一些博客文章,提供了將XQuery與LINQ to SQL結合使用的選項。
SQL Server XQuery with LINQ to SQL提供了用於將包括嵌入的XQuery到用戶定義的函數,其可以從LINQ被訪問以SQL
Modifying LINQ to SQL command text和Modifying LINQ to SQL command text again提供一種方法來擴展LINQ溶液框架到SQL的查詢執行,通過操縱生成的命令文本來支持XQuery構造。
最終的結果是,你實際上可以使用XQuery直接從您的DataContext,通過編寫代碼,看起來像:
var results = from r in MyXmlFieldTable
let date = context.XQueryDateTime(r.XmlValues, "MyContainer/MyDateTime")
where date < DateTime.Now.AddDays(-5)
select new
{
Date = date,
FirstName = context.XQueryString(r.XmlValues, "MyContainer/FirstName"),
LastName = context.XQueryString(r.XmlValues, "MyContainer/LastName")
};
(不過,如果你發現你需要做這樣的事情很多,還有你要同一個數據庫文件一樣的MongoDB或RavenDB,這意味着與層級/關係後模型的工作)
作爲有關XQuery和SQL一般一個側面說明更好機會的話,會得到不同程度的支持噸在不同的版本。具體來說,SQL 2005中的XQuery支持是較新版本中支持的有限子集。