我有一个 WCF 服务,它的选择方法只需要一个 id。我需要使用几个(20 多个)加载选项来获取我需要返回的所有内容,所以我认为这会产生一个非常复杂的查询,并且编译它会是一个好主意。到目前为止,我发现的唯一方法是创建一个静态数据上下文并加载选项以用于已编译的查询。如果我不这样做,它会抱怨使用与编译时不同的上下文。所以这让我的问题是我应该这样做吗?在 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;
}