将单个LINQ值转换为字符串

Bat*_*rog 1 c# linq linq-to-entities

我使用LINQ从数据库中提取单个值:

    public string GetPoliceDepartmentName(int id)
    {
        var PoliceDepartmentName = from p in db.PoliceDepartmentList
                                   join l in db.TrespassOrder on p.PoliceDeptId equals l.PoliceDepartmentId
                                   where l.IncidentId == id
                                   select p.DepartmentName.Single();
        return PoliceDepartmentName.ToString();
    }
Run Code Online (Sandbox Code Playgroud)

该方法运行,但不返回预期的"Boston PD",而是返回System.Data.Objects.ObjectQuery`1 [System.Char]

我不确定为什么我的方法没有从queriable转换为string.我会继续研究,但在这一点上提示会很好.

Mar*_*zek 6

你打电话Singlestring,这就是IEnumerable<char>,所以你会得到第一个(也是唯一一个)从串字符.这可能不是你想要的.

使用适当的括号,您根本不需要ToString调用,因为PoliceDepartmentNamestring自动输入类型.

var PoliceDepartmentName = (from p in db.PoliceDepartmentList
                           join l in db.TrespassOrder on p.PoliceDeptId equals l.PoliceDepartmentId
                           where l.IncidentId == id
                           select p.DepartmentName).Single();
return PoliceDepartmentName;
Run Code Online (Sandbox Code Playgroud)