Verwenden von MVC Entity Framework Ich rufe eine Funktion mit AJAX, die Skip-und Take-Parameter übergeben.LINQ IQueryable die gleichen Zeilen mit überspringen und übernehmen
[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)
}
Mein Problem ist, dass jedes Mal, wenn ich die Funktion aufrufen, die gleichen Zeilen zurückgegeben werden, obwohl ich debuggen und die Sprungwert-Schritten, und ich habe 100s von Zeilen aus zu holen.
Ja, die gleichen Zeilen in der gleichen Reihenfolge, obwohl ich überspringen erhöhen um 12 jedes Mal, wie vorgeschlagen hinzuzufügen. – Jackmagic1
Haben Sie die EF-Aufrufe [trace] (https://msdn.microsoft.com/en-us/data/dn469464.aspx)? –
Ich denke, Sie haben mehr als eine SearchContent() -Methode. Die eine mit nur take und skip hat zwei Parameter, die andere mit acht Parametern. – jdweng