我正在构建一个使用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>
怎么样,这是我的问题,为什么只有在包含“query1”时,“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
有人知道为什么不使用System.Linq.Dynamic查询1可以工作,但查询2需要它才能执行吗?
谢谢大家。