C# 我可以在实体框架分页语法中使用联接吗?
我想知道这里是否有人能帮忙。我对实体框架不熟悉。我有两个不同的查询。我想加入它们并得到1。以下是我的代码:C# 我可以在实体框架分页语法中使用联接吗?,c#,asp.net-mvc,entity-framework,pagination,C#,Asp.net Mvc,Entity Framework,Pagination,我想知道这里是否有人能帮忙。我对实体框架不熟悉。我有两个不同的查询。我想加入它们并得到1。以下是我的代码: public static List<BankDepositHistory> GetAllByPagination(int page ,int stepes) { page=page-1; using(MyketAdsEntities context = new MyketAdsEntities())
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;
}
}
公共静态列表GetAllByPagination(int页,int步骤)
{
第页=第1页;
使用(MyketAdsEntities上下文=新的MyketAdsEntities())
{
var transactionlist=context.BankDepositHistories.ToList();
变量开始=第页*步骤;
var result=context.BankDepositHistories.OrderByDescending(c=>c.AccountId)
//给我计数为字段的anny代码
.跳过(开始)
.采取(步骤)
.ToList();
返回(结果);
}
}
公共静态int GetCount()
{
使用(MyketAdsEntities上下文=新的MyketAdsEntities())
{
int count=context.bankDepositorHistories.count();
返回计数;
}
}
如你所见,我有两种方法。我只想通过分页来获取所有信息。
非常感谢假设您有下面的实体,那么下面的设置应该可以工作
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 = result;
resultVM.Count = result.Count();
return resultVM;
}
}
公共类BankDepositoryHistoryVM
{
公共列表银行详细信息{get;set;}
公共整数计数{get;set;}
}
返回视图模型
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 = result;
resultVM.Count = result.Count();
return resultVM;
}
}
公共静态列表GetAllByPagination(int页,int步骤)
{
第页=第1页;
使用(MyketAdsEntities上下文=新的MyketAdsEntities())
{
var transactionlist=context.BankDepositHistories.ToList();
变量开始=第页*步骤;
var result=context.BankDepositHistories.OrderByDescending(c=>c.AccountId)
.跳过(开始)
.采取(步骤)
.ToList();
List resultVM=新列表();
resultVM.bankDetails=结果;
resultVM.Count=result.Count();
返回结果vm;
}
}
调用方法:
List<BankDepositHistory> bankDetails = className.GetAllByPagination.bankDetails;
int count = className.GetAllByPagination.Count;
List<BankDepositHistoryVM> allDetails = className.GetAllByPagination();
List bankDetails=className.GetAllByPagination.bankDetails;
int count=className.GetAllByPagination.count;
List allDetails=className.GetAllByPagination();
希望对您有所帮助。您想要一个只返回
Count
的方法,还是想要一个同时返回Count
和List
的方法?@stom我想要Count和List作为一个列表。这一行除了对数据库进行浪费性的额外调用外,似乎什么都不做:var transactionlist=context.BankDepositHistories.ToList()代码>非常感谢,我不确定这是否是最好的答案,但它可能很方便。欢迎,如果它能帮助您回答这个问题。