LinqKit(http://www.albahari.com/nutshell/linqkit.aspx)を使用しています
具体的なクラスを定義せずに次のコードを機能させる方法はありますか?
LINQtoEntitiesを使用して強く型付けされた動的クエリを構築しようとしています。
エラーが発生しThe parameter 'o' is not in scope.
ます。
特定の状況で。
void Main()
{
var lquery = from a in Foo select new { Bar = a.Baz }; // <-- error like this
//var lquery = from a in Foo select new stuff { Bar = a.Baz }; // <-- here no error
test("Case", lquery, o => o.Bar).Dump();
}
class stuff { public string Bar {get; set;} }
IQueryable<T> test<T>(string val, IQueryable<T> qry, Expression<Func<T, string>> selector){
var ex = selector.Expand();
var b = from c in qry.AsExpandable()
where ex.Invoke(c).Contains(val)
select c;
return b;
}
匿名クラスがtest()
このエラーで使用されると、具象クラスが使用されるときにエラーがスローされstuff
ないように見えます。この状況で匿名クラスを使用できるようにする回避策はありますか?
このエラーはLinkKitに関連している可能性があることは理解していますが、そこに飛び込むのに十分な技術的知識がありません...