【问题标题】:Not Returning properly不能正常返回
【发布时间】:2016-02-23 16:32:00
【问题描述】:

我试图获取另一个列表中尚不可用的员工列表。但我只从数组列表中获取第一个元素。 例如:如果我尝试EmployeeId = new int[2] {5, 2}; 该列表仅不包括“5”。所以请帮我纠正我的下面的代码。

public JsonResult GetEmployees(int[] EmployeeId)
    {            
        var dbs = new dbContext();

        if (EmployeeId != null)
        {
            foreach (var emp in EmployeeId)
            {
               var EmpList = dbs.Employees.Select(e => new
                   {
                       EmployeeId = e.EmployeeId,                          
                       Name = e.EmployeeName,
                       Job = e.Job.JobName,
                       Currency = e.Currency.CurrencyName,
                       Amount = e.Amount
                   }).Where(o => o.EmployeeId != emp);
              return Json(EmpList, JsonRequestBehavior.AllowGet);
            }
        }   
          return null
    }

【问题讨论】:

    标签: c# arrays asp.net-mvc return iqueryable


    【解决方案1】:

    试试这个:

    var employeeList = dbs.Employees.
                 .Where(e => EmployeeId.All(x=> x != e.EmployeeId))
                 .Select(e => new
                 {
                   EmployeeId = e.EmployeeId,                          
                   Name = e.EmployeeName,
                   Job = e.Job.JobName,
                   Currency = e.Currency.CurrencyName,
                   Amount = e.Amount
                 });
             return Json(EmpList, JsonRequestBehavior.AllowGet);
           }
    

    【讨论】:

      【解决方案2】:

      您是否尝试过单步执行您的代码?

      您的 foreach 迭代您的 EmployeeId 数组。 由于您的 foreach 中有一个 return 语句,因此它会在此时退出该函数,并且它仅使用数组的第一个元素。

      你需要这样的东西:

      public JsonResult GetEmployees(int[] EmployeeId)
              {
                  var dbs = new dbContext();
      
                  if (EmployeeId != null)
                  {                
                      var EmpList = dbs.Employees.Where(EmployeeId.Contains(e.EmployeeId))
                      .Select(e => new
                      {
                          EmployeeId = e.EmployeeId,
                          Name = e.EmployeeName,
                          Job = e.Job.JobName,
                          Currency = e.Currency.CurrencyName,
                          Amount = e.Amount
                      }).Where(o => o.EmployeeId != emp);
      
                      return Json(EmpList, JsonRequestBehavior.AllowGet);               
                  }
      
                  return null;
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多