Bu projeye sahibim ve yapmam gereken görevlerden biri, belirli bir nesnenin hangi sayfada göründüğünü bulmaktır. Nesnenin önceden tanımlanmış bir kimliği vardır ve kimlikler 0'dan N'ye kadar görünür, ancak potansiyel olarak değerleri atlayabilirler.Belirli bir ID'ye sahip bir öğeden önce kaç öğenin görüneceğini kontrol edin
Açıkçası, aradığım öğenin kimliğini kullanmanın 25 sanki işe yaramayacağı ve sayfa başına 10 öğenin olması gerektiği ancak bu öğelerden 8 tanesi eksik olduğu anlamına geliyor. iyi bir yol için varsa
int itemsPerPage = Convert.ToInt32(masterDbContext.Settings.First(x => x.Name == "ItemsPerPage").Value);
int itemCount = masterDbContext.Items.OrderBy(x => x.Id).TakeWhile(x => x.Id < currentItemId).Count();
int pageNumber = (int)Math.Ceiling((double)itemCount/itemsPerPage);
Response.Redirect("~/View/" + rootItem.Id + (pageNumber > 1 ? "/Page/" + pageNumber : ""));
: daha iyi bir yolu olup olmadığını merak ediyorum, 2. Burada
ne var şimdi var sayfa 3 sığacak şekilde çalışacağını söyledi, ancak yalnızca sayfaya sığabilir Bunu yap, sorun değil. Ben sadece olduğunu umuyorum var, çünkü eminim TakeWhile
veritabanında binerim Items
alabildiğim bir süre alabilir.
Not: Bu yöntem şu anda çalışıyor gibi görünüyor.
int itemCount = masterDbContext.Items.FindIndex(x => (x.Id == given_ID));
Neden burada GroupBy'ye ihtiyacınız var? masterDbContext.Items.Count (x => x.Id
ieaglle
@ieaglle Bu mükemmel çalıştı! –
ve her iki sürümde aynı SQL kodunu tam olarak üretmek neredeyse kesindir. Yani bu sadece bir kod okunabilirlik optimizasyonu, performans değil. – ieaglle