将单个LINQ值转换为字符串

本文关键字:字符串 转换 单个 LINQ | 更新日期: 2023-09-27 18:05:33

我正在使用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();
    }

方法运行了,但是它没有返回预期的"Boston PD",而是返回System.Data.Objects.ObjectQuery ' 1[System.Char]

我不知道为什么我的方法不是从可查询转换到字符串。我将继续研究,但在这一点上提示会很好。

将单个LINQ值转换为字符串

您在string上调用Single,这是IEnumerable<char>,因此您将从字符串中获得第一个(也是唯一一个)字符。这可能不是你想要的。

使用适当的括号,您根本不需要ToString调用,因为PoliceDepartmentName将自动被类型为string

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;

需要括号:

(from p in db.PoliceDepartmentList
 join l in db.TrespassOrder on p.PoliceDeptId equals l.PoliceDepartmentId
 where l.IncidentId == id
 select p.DepartmentName).Single();