このコンパイル済みの linq-to-sql クエリを考えてみましょう。
private static Func<LINQDBDataContext, string, IQueryable<Pet>>
QueryFindByName =
CompiledQuery.Compile((
MyLinqDataContext context, string name) =>
from p in context.Pets where p.Name == name select p);
しかし、私はすでにクラス内のコンテキストへのプライベート参照を保持しており、コンテキストを公開せずにクエリをパブリックとしてマークできるようにしたい.
private static MyLinqDataContext context = SomeUtilityClass.GetMeMyContext();
//...
public static Func<string, IQueryable<Pet>> QueryFindByName =
CompiledQuery.Compile((string name) =>
from p in this.context.Pets where p.Name == name select p);
//doesn't compile as expects TArg0 to be a DataContext.
クエリごとにパブリック ラッパー関数を作成せずにこれを行う方法はありますか??