运算符'=='不能应用于'int'和'string'类型的操作数

14 .net c# linq

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

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));
}
Run Code Online (Sandbox Code Playgroud)

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

PS:我的事情我只是因为接缝只是一个愚蠢的小错误......

Hab*_*bib 14

selectedDepartment在LINQ查询中比较它之前,您需要转换为整数.

int selectedDepartment = Convert.ToInt32(rcbDepartment.SelectedValue);
Run Code Online (Sandbox Code Playgroud)

在您的查询中:

ctx.HtDepartments.SingleOrDefault(d => d.DepartmentId == selectedDepartment);
Run Code Online (Sandbox Code Playgroud)

d.DepartmentId是int类型,selectedDepartment而是一个字符串,您可以使用==运算符比较它们.