我正在使用 LinqKit (http://www.albahari.com/nutshell/linqkit.aspx)
有没有办法让下面的代码工作而不必定义一个具体的类?
尝试使用 LINQ to Entities 构建强类型动态查询。
我收到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 相关,但我没有足够的技术知识来深入了解......