#c# #asp.net-mvc #entity-framework #pagination
#c# #asp.net-mvc #entity-framework #разбивка на страницы
Вопрос:
Мне было интересно, может ли кто-нибудь помочь здесь.Я новичок в Entity Framwork. У меня есть 2 разных запроса.Я хочу присоединиться к ним и получить 1. Вот мой код:
public static List<BankDepositHistory> GetAllByPagination(int page ,int stepes)
{
page=page-1;
using(MyketAdsEntities context = new MyketAdsEntities())
{
var transactionlist = context.BankDepositHistories.ToList();
var start = page * stepes;
var result= context.BankDepositHistories.OrderByDescending(c=>c.AccountId)
//anny code that give me count as field
.Skip(start)
.Take(stepes)
.ToList();
return (result);
}
}
public static int GetCount()
{
using (MyketAdsEntities context = new MyketAdsEntities())
{
int count = context.BankDepositHistories.Count();
return count;
}
}
Как вы видите, у меня есть 2 метода. Я просто хочу иметь GetAllByPagination.
Большое спасибо
Комментарии:
1. Вам нужен метод, который просто возвращает
Count
или вам нужен метод, который возвращает обаCount
иList
?2. @stom Я хочу, чтобы и количество, и список были объединены в виде списка.
3. Похоже, что эта строка ничего не делает, кроме как делает ненужный дополнительный вызов базы данных:
var transactionlist = context.BankDepositHistories.ToList();
Ответ №1:
Предположим, у вас есть объект ниже, тогда настройка ниже должна работать.
public BankDepositHistory
{
public string UserName {get;set}
//etc..
}
Создайте модель представления
public class BankDepositHistoryVM
{
public List<BankDepositHistory> bankDetails {get;set;}
public int Count {get;set;}
}
Вернуть модель представления
public static List<BankDepositHistoryVM> GetAllByPagination(int page ,int stepes)
{
page=page-1;
using(MyketAdsEntities context = new MyketAdsEntities())
{
var transactionlist = context.BankDepositHistories.ToList();
var start = page * stepes;
var result= context.BankDepositHistories.OrderByDescending(c=>c.AccountId)
.Skip(start)
.Take(stepes)
.ToList();
List<BankDepositHistoryVM> resultVM = new List<BankDepositHistoryVM>();
resultVM.bankDetails = resu<
resultVM.Count = result.Count();
return resultVM;
}
}
Вызовите метод:
List<BankDepositHistory> bankDetails = className.GetAllByPagination.bankDetails;
int count = className.GetAllByPagination.Count;
List<BankDepositHistoryVM> allDetails = className.GetAllByPagination();
Надеюсь, это поможет.
Комментарии:
1. Большое спасибо, я не уверен, что это лучший ответ, но это может быть удобно.
2. Добро пожаловать, если это помогло вам, пожалуйста, примите ответ.