扩展方法之间的模糊方法调用

时间:2012-07-24 11:47:12

标签: c# .net

我已经通过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,   字符串,参数   object [])'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 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

从代码中删除以下内容:

using System.Linq;

答案 2 :(得分:0)

db.ReservationSet有哪些类型?

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

如果可分配给IQueryable,请尝试写:
((IQueryable )db.ReservationSet).Where("blbalbabla",1,2)

答案 3 :(得分:0)

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

将您的班级拆分为2个cs文件并创建部分班级。所以你从其中一个文件中删除使用System.Linq。 试试吧也许它有效。