我正在使用 Entity Framework 4 构建一个 ASP.Net MVC 3 应用程序。当执行下面的两条代码时,两个变量(query1 和 query2)的返回类型为
System.Data.Objects.ObjectQuery<Asset.Model.Equipment>
Query1 使用 ObjectContext 的直接实例,而 Query2 使用存储库模式,即它调用 EquipmentService 中的 GetEquipment,而后者又调用 Equipment Repository 中相同命名的方法。Service 和 Repository 中的方法都返回
IQueryable<Equipment>
如何,这是我的问题,为什么 query2 仅在我包含时才有效
using System.Linq.Dynamic;
在我的控制器顶部
using (AssetEntities context = new AssetEntities())
{
var query1 = context.Equipments
.OrderBy("it." + sidx + " " + sord)
.Skip(pageIndex * pageSize)
.Take(pageSize);
}
var query2 = equipService.GetEquipment()
.OrderBy(sidx + " " + sord)
.Skip(pageIndex * pageSize)
.Take(pageSize);
如果我从控制器中省略 System.Linq.Dynamic,则会在 Query2 中收到错误
.OrderBy(sidx + " " + sord)
哪个州
The type arguments for method 'System.Linq.Queryable.OrderBy<TSource,TKey>(System.Linq.IQueryable<TSource>, System.Linq.Expressions.Expression<System.Func<TSource,TKey>>)' cannot be inferred from the usage. Try specifying the type arguments explicitly
有谁知道为什么 query1 可以在不使用 System.Linq.Dynamic 的情况下工作,但是 query2 需要它来执行?
谢谢大家。