6

我已经通过 nuget 包下载了 DynamicLinq 库。我像下面这样使用它

db.ReservationSet.Where("blbalbabla",1,2)

但我得到以下例外。

错误 38 以下方法或属性之间的调用不明确:'System.Linq.Dynamic.DynamicQueryable.Where(System.Linq.IQueryable, string, params object[])' 和 'System.Linq.Dynamic.DynamicQueryable.Where( System.Linq.IQueryable,字符串,参数对象 [])' F:\Projects\IEKeysNew\IEKEYS\Controllers\ReportController.cs 145 22 IEKEYS

这是两种方法的标志。

public static IQueryable<T> Where<T>(this IQueryable<T> source, string predicate, params object[] values);
public static IQueryable Where(this IQueryable source, string predicate, params object[] values);

我找不到摆脱这个编译时异常的东西。

4

4 回答 4

6

不幸的是,另一个第三方 .dll 库内部包含相同的动态 linq 库。Trirand 的 jQGrid 库包含动态 linq 库,这就是我导入 System.Linq.Dynamic 库时发生冲突的原因。

于 2012-07-24T11:59:15.643 回答
0

从您的代码中删除以下使用:

using System.Linq;
于 2012-07-24T11:50:06.200 回答
0

有什么类型db.ReservationSet

如果它是您的实例的集合,请MyClass尝试编写db.ReservationSet.Where<MyClass>("blbalbabla",1,2).

如果它是可分配的,IQueryable那么尝试写:
((IQueryable )db.ReservationSet).Where("blbalbabla",1,2)

于 2012-07-24T11:54:44.583 回答
0

我知道这不是最漂亮的方式。但我没有别的想法。

将您的类拆分为 2 个 cs 文件并创建部分类。System.Linq因此,您从其中一个文档中删除了使用。试一试也许有效。

于 2012-07-24T11:55:15.377 回答