2016-06-13 15 views
2

マイビューのモデルがIEnumerable<SomeModel>でToListメソッド()が含まれていないので、私のコントローラで、私はこれを行う:のIQueryableは

[HttpGet] 
public PartialViewResult show() { 
    IQueryable query= from data in entity.dbCtxt 
     select data; 
    return PartialView("show", query.ToList()); 
} 

ToList()の定義が含まれていないIQueryable判明...

public interface IQueryable : IEnumerable{ 
    Type ElementType { get; } 
    Expression Expression { get; } 
    IQueryProvider Provider { get; } 
} 

IQueryableをリストにキャストするにはどうすればよいですか?

答えて

4

ToListは、IQueryable<T>の拡張方法であり、IQueryableではないためです。

public PartialViewResult show() { 

     return PartialView("show", dbCtxt.YourDbSet.ToList()); 
} 

DbSet<T>クラスがIQueryable<T>から継承するので、あなたのアイデアは、そのテーブルのすべての行をフェッチしている場合、あなたはあなたのDbSetから直接ToListを呼び出すことができます。それはあなたのクエリの場合、あなたは単にこれを行うことができます。

2

あなただけのこの操作を行うことができますselectIEnumerable<T>を返しますので、あなたはその

 var query = from data in entity.dbCtxt 
        select data; 
     return PartialView("show", query.ToList()); 
ToList()を呼び出すことができ、 Iqueryableすることを必要とするが、なぜわかりません