Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Linq的IronPython抛出ArgumentTypeException_Linq_Nhibernate_Ironpython - Fatal编程技术网

带有Linq的IronPython抛出ArgumentTypeException

带有Linq的IronPython抛出ArgumentTypeException,linq,nhibernate,ironpython,Linq,Nhibernate,Ironpython,我正试图用IronPython扩展我的Web应用程序,到目前为止,IronPython运行得非常好,但我似乎无法让它与我的NHibernatelink设置配合得很好 我正在为IronPython代码提供一个IQueryable,然后使用Linq方法对其进行过滤,例如: Enumerable.Where[object](data, Func[object, bool](func)) 这很好,但是因为我使用的是Enumerable而不是Queryable,所以在运行Where函数之前,当我希望将W

我正试图用IronPython扩展我的Web应用程序,到目前为止,IronPython运行得非常好,但我似乎无法让它与我的NHibernatelink设置配合得很好

我正在为IronPython代码提供一个IQueryable,然后使用Linq方法对其进行过滤,例如:

Enumerable.Where[object](data, Func[object, bool](func))
这很好,但是因为我使用的是Enumerable而不是Queryable,所以在运行Where函数之前,当我希望将Where子句添加到NHibernate生成的SQL查询中时,它会从数据库中提取所有记录

所以我试着:

Queryable.Where[object](data, Func[object, bool](func))
但这只会产生:

Microsoft.Scripting.ArgumentTypeException: expected IQueryable[object], got Query[Case] 
我错过什么了吗?这可能吗


安东尼

基本上,通用不变性会给你带来问题。
Func
不能转换为
Func
——至少在.NET 4.0之前是这样

请注意,
Queryable.Where
需要表达式树,而不是委托。IronPython支持表达式树吗


如果可以用Python生成表达式树,是否可以将其改为
expression
而不是
expression
?如果可以的话,这应该会奏效。

我确实有点想知道这一点。找不到任何IronPython支持表达式树的证据,所以我改用HQL而不是Linq。干杯