3
我有一個只需要一個id的select方法的WCF服務。我需要使用幾個(20+)加載選項來獲取我需要返回的所有內容,所以我認爲這會讓一個非常複雜的查詢和編譯它成爲一個好主意。到目前爲止我發現的唯一方法是創建靜態數據上下文並加載選項以與編譯後的查詢一起使用。如果我不這樣做,它會抱怨使用與編譯時不同的上下文。所以這讓我的問題應該做到這一點?在Web服務上使用靜態數據上下文會導致問題?它只會用於這種方法。所有其他方法創建它們自己的。我只是害怕我可能最終會爲此決定付出代價,所以任何提示都會很棒!謝謝!我可以在Web服務中使用已編譯的查詢嗎?
private static DataLoadOptions loadOptions = GetDataLoadOpt();
private static readonly Func<ItemsDataContext, int, Data.Item> SelectItem =
CompiledQuery.Compile((ItemsDataContext DataContext, int ItemId) =>
DataContext.Items.Where(r => r.ItemID == ItemId).FirstOrDefault());
private static DataLoadOptions GetDataLoadOpt()
{
var loadOpts = new System.Data.Linq.DataLoadOptions();
loadOpts.LoadWith<Data.Item>(d => d.ItemProp);
.
.
.
return loadOpts;
}
你可以發佈你的代碼嗎?我想不出爲什麼需要一個數據上下文來編譯。我的一個項目中有30多個編譯查詢,這些查詢都是在沒有上下文的情況下完成的。 – Dai
希望這足以讓我知道我正在與 – Mike
一起工作,您是否也可以發佈異常和堆棧跟蹤? – Dai