【问题标题】:How to use Count in EF Repository?如何在 EF 存储库中使用计数?
【发布时间】:2022-01-16 16:07:24
【问题描述】:

当我想在 Entity Framework ASP.NET MVC 存储库中使用 Count() 时遇到小问题。

这是我的代码:

 public ArrayDataVM CountAll()
 {
     return _db.ArrayDatas.Count();
 }

据说不能将 int 转换为 Model。这是截图:

enter image description here

因为我想在另一个控制器中调用它来整理代码。像这样(这只是一个例子,因为有更多的长查询):

之前(直接到DbContext):

ViewBag.CountAll = _db.ArrayDatas.Count();

之后(通过存储库):

ViewBag.CountAll = _adRepo.CountAll();

感谢您的帮助:)。

【问题讨论】:

  • 那你为什么从CountAll()返回ArrayDataVM

标签: c# asp.net asp.net-mvc entity-framework


【解决方案1】:

您可以使用以下代码: 内部存储库:

public async Task<int> CountAllAsync()
{
   return await _db.ArrayDatas.CountAsync();
}

之后(通过存储库):

 ViewBag.CountAll =await _adRepo.CountAllAsync();

【讨论】:

  • CountAsync() 在 EF Core 中工作。如果您不使用 ASP .Net Core 或 EF Core 包,请使用 public int CountAll() { return _db.ArrayDatas.Count(); } ViewBag.CountAll =_adRepo.CountAll();
  • 它可以在没有异步的情况下使用,因为我使用的是非核心版本。谢谢大家:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
  • 2012-02-23
相关资源
最近更新 更多