C# 我可以在实体框架分页语法中使用联接吗?

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())

我想知道这里是否有人能帮忙。我对实体框架不熟悉。我有两个不同的查询。我想加入它们并得到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;
            }

        }
公共静态列表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()非常感谢,我不确定这是否是最好的答案,但它可能很方便。欢迎,如果它能帮助您回答这个问题。