2016-07-04 9 views
2

MVCエンティティフレームワークを使用する私はスキップしてパラメータを取るAJAXで関数を呼び出しています。LINQ IQueryableをスキップして同じ行を返すと取る

[HttpGet] 
public async Task<ActionResult> _ViewMore(int take, int skip) 
{ 
    var c = await GetContent(take, skip); 
    return View(c) 
} 

public async Task<List<PartialContent>> GetContentForCulture(int take, int skip) 
{   
    return await ContextHelper.SearchContent(take, skip); 
} 

public static async Task<List<PartialContent>> SearchContent(int take, int skip) 
{ 
    try 
    { 
     using (var context = new Context()) 
     { 
      var content = context.ContentEntities.SearchContent(take, skip); 

      var f = await content.Select(s => new PartialContent 
      { 
       Subtype = s.Subtype, 
       Id = s.Id, 
       MainImage = s.MainImage, 

      }).ToListAsync(); 

      return f; 
     } 
    } 
    catch (Exception ex) 
    { 
     //  Log.Err(ex.Message, ex); 
     return null; 
    } 
} 

public static IQueryable<T> SearchContent<T>(this IQueryable<T> source, int take, int skip) 
    where T : ContentEntity 
{ 
    source.Where(m => m.IsPublished).OrderByDescending(m => m.DatePublished).Skip(skip).Take(take) 

} 

私の問題は、私は関数を呼び出すたびに同じ行がも、私のデバッグとスキップ値の増分かかわらず返され、私はからフェッチする行の数百を持っているということです。

+0

によって句で同じ行の別の注文を追加しました。 – Jackmagic1

+0

EFが[トレース](https://msdn.microsoft.com/en-us/data/dn469464.aspx)を呼び出しましたか? –

+0

複数のSearchContent()メソッドがあると思います。テイクとスキップだけのものには2つのパラメータがあり、ポストされたものには8つのパラメータがあります。 – jdweng

答えて

1

解決策は、私が12ずつスキップインクリメントにもかかわらず、提案と同じ順序で、はいDamien_The_Unbeliever

-1
//pageSize is how many rows you want to skip every time and 
    //index is like page number first time index should be 0 then 1 every time index will be increased by one 
    var c = await context.ContentEntities.Skip(pageSize * index).Take(pageSize).ToListAsync(); 
関連する問題