我在这里有点误解,为什么我这里有一个错误,我需要解析它,这段代码有什么问题?

UberTrackerEntities ctx = UberFactory.Context;
IEnumerable<HtUser> users = HtUser.GetAll();
string selectedBU = rcbBusinessUnits.SelectedValue;
string selectedDepartment = rcbDepartment.SelectedValue;

HtDepartment department = ctx.HtDepartments.SingleOrDefault(d => d.DepartmentId ==selectedDepartment);

if (department != null)
{
    users = users.Where(u => u.HtDepartments.Contains(department));
}

感谢您的帮助和快速答复!

PS:我觉得我只是想解决一个愚蠢的小错误而已...

最佳答案

您需要先将selectedDepartment转换为整数,然后才能在LINQ查询中进行比较。

int selectedDepartment = Convert.ToInt32(rcbDepartment.SelectedValue);

在您的查询中:
ctx.HtDepartments.SingleOrDefault(d => d.DepartmentId == selectedDepartment);
d.DepartmentId是int类型,而selectedDepartment是字符串,您可以使用==运算符进行比较。

关于c# - 运算符 '=='不能应用于 'int'和 'string'类型的操作数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15404997/

10-11 04:46