Entity Framework 4 を使用して ASP.Net MVC 3 アプリケーションを構築しています。以下の 2 つのコードを実行すると、両方の変数 (query1 と query2) の戻り値の型が
System.Data.Objects.ObjectQuery<Asset.Model.Equipment>
Query1 は ObjectContext の直接のインスタンスを使用しますが、Query2 はリポジトリ パターンを使用します。つまり、EquipmentService で GetEquipment を呼び出し、Equipment Repository で同じ名前のメソッドを呼び出します。Service と Repository の両方のメソッドが戻ります
IQueryable<Equipment>
どうやって、ここに私の質問があります。
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 を実行する必要がある理由を知っている人はいますか?
みんな、ありがとう。