【问题标题】:ASP.NET MVC Linq Query to compare too variables?ASP.NET MVC Linq Query 比较两个变量?
【发布时间】:2019-03-19 15:51:43
【问题描述】:

有没有办法让这个查询工作?

var employeesSU = from s in db.HolidayRequestForms
                          where s.Employee.Site.SiteName == searchSitehols || searchSitehols == null || searchSitehols == ""
                          select s;


        var querythpmpro = (from r in db.HolidayRequestForms
                            where r.Employee.Site.SiteName == employeesSU.FirstOrDefault()
                            group r by r.MonthOfHoliday into g
                            select new { Value = g.Key, Count = g.Sum(h => h.HoursTaken) }
               ).OrderBy(e => e.Value);

我目前收到此错误:

 Error  4   Operator '==' cannot be applied to operands of type 'string' and 'HolidayTracker.Models.HolidayRequestForm' C:\Projects\HolidayTrackerMainProject\HolidayTracker - Working - 04-03 - Copy\HolidayTracker\Controllers\MetricsController.cs   170 39  HolidayTracker

有没有办法解决这个错误?或者我不能只比较两者吗?

【问题讨论】:

  • 这个错误发生在哪一行?我猜是s.Employee.Site.SiteName == searchSitehols...SiteName 是什么?显然它不是string
  • 或者如果SiteNamestring,那么显然你不能将它与employeeSU 的元素进行比较,HolidayRequestForm 不是字符串。
  • 是的 SiteName 将是一个字符串。是的,HolidayRequestForm 不是字符串,而是我猜的 sql 表,但我只想要其中的一个元素。但是谢谢,现在有道理了
  • 我看到你只想要一个元素,因此FirstOrDefault(),但是你想将你的表格中的一行与一个字符串进行比较吗?
  • 你看我正在使用谷歌图表,我需要在 UI 中为用户选择一个网站(我正在使用下拉菜单,因此使用 employeeSU 变量),但我不是即使确定它是否会那样工作

标签: c# asp.net-mvc linq


【解决方案1】:
  var querythpmpro = (from r in db.HolidayRequestForms
                            where r.Employee.Site.SiteName == employeesSU.FirstOrDefault().Name // or whatever field you want to compare
                            group r by r.MonthOfHoliday into g
                            select new { Value = g.Key, Count = g.Sum(h => h.HoursTaken) }
               ).OrderBy(e => e.Value);

【讨论】:

    猜你喜欢
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多