我在这里有点误解,为什么我这里有一个错误,我需要解析它,这段代码有什么问题?
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/