使用 MVC Core 中的工作单元模式从另一个表中提取的 ID 列表 ASP.NET 从表中检索数据



目的是从技术人员表中检索所有员工的列表。与使用该ID列表相比,必须在评论表上执行搜索,从而生成这些员工的所有评论列表。

我使用了工作单元和存储库模式进行数据访问。

   tech = unitOfWork.TechnicianRepository.GetAll().Where(b=>b.Branch =="Calgary").AsEnumerable().Select(r => new Review{TechnicianID =r.UserId, }).ToList();

比在将其发送到视图之前,我将其投射到控制器中

      public IActionResult Index()
      {
        var result = ((IEnumerable)tech).Cast<Review>().ToList();
        return View(result);
      }

以下是返回的结果之一。

  [{"id":0,"technicianID":"c62a2746-1bfc-484f-a479-084e0be389a4","overAllTechRating":0,"origin":null,"name":null,"feedbackText":null,"date":"0001-01-01T00:00:00"}

因此,如此处可以看出,用户 ID 是从"技术人员"表中提取的,但是对于这些 Id,所有其他字段显示为空。

以下是自发布问题以来我迄今为止尝试过的更新:

尝试的方法:-

    public IActionResult Index()
    {
         var result = unitOfWork.TechnicianRepository.GetAll().Where(b => b.Branch == "Calgary").AsEnumerable().Select(r=> new {r.UserId});
        List<Review> array = new List<Review>();
        while (result != null) {
            array.Add(unitOfWork.ReviewRepository.GetByGuidId(result.First().UserId));
        }
        return View(array);
    }

在尝试了这个之后,我能够将我的 UserID 传递给 UnitOfWork GetByGuidId() 函数,但是,它找不到对象,返回了一个错误的请求。

这是它的样子:

    public virtual T GetByGuidId(Guid? Id)
    {
        return dbSet.Find(Id);
    }

主要原因可能是 Technician 对象未实例化,因此数据存储从未返回该对象。它返回技术人员 ID,因为它是同一表中的外键。

最新更新