我正在SQL Server 2008上創建一個任務調度程序。
我有一張表,用於存儲任務。每個任務都是任務名稱(例如ImportFile)和參數。我將參數存儲在XML列中,因爲不同的任務具有不同的簽名。使用XML列從表中選擇
表如下:
Id:integer(PK) | operation:nvarchar | Arguments:xml
前排隊的任務時,我經常需要驗證給定的任務尚未安排。查找是基於操作和參數完成的。
問題:使用Linq-to-Sql如何檢查給定操作+ args是否已經存在於隊列中?
我要尋找類似:
var isTaskScheduled = db.Tasks.Any(t =>
t.Opearation == task.Operation &&
t.Arguments == task.ArgumentsAsXElement);
任何替代實施意見(因爲SQL Server無法比擬的XML類型不工作)?
是的,合理的。但是我有*非常確定*部分的問題。我希望有更好的解決方案。這種方法的一個變體是使用CRC來顯着縮小結果子集,然後(如果多於一個結果返回)做(昂貴的)XML比較。 – 2010-11-18 18:19:45