C# 将单个LINQ值转换为字符串
我使用LINQ从数据库中提取单个值:C# 将单个LINQ值转换为字符串,c#,linq,linq-to-entities,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.PoliceDepartmentI
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]
我不确定为什么我的方法没有从可查询转换为字符串。我会继续研究,但在这一点上给出一个提示会很好。您需要括号:
(from p in db.PoliceDepartmentList
join l in db.TrespassOrder on p.PoliceDeptId equals l.PoliceDepartmentId
where l.IncidentId == id
select p.DepartmentName).Single();
你需要括号:
(from p in db.PoliceDepartmentList
join l in db.TrespassOrder on p.PoliceDeptId equals l.PoliceDepartmentId
where l.IncidentId == id
select p.DepartmentName).Single();
您正在调用
string
上的Single
,它是IEnumerable
,因此您将从string中获得第一个(也是唯一一个)字符。那可能不是你想要的
使用合适的括号,您根本不需要调用ToString
,因为policydepartmentname
将自动成为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;
您正在调用
string
上的Single
,它是IEnumerable
,因此您将从string中获得第一个(也是唯一一个)字符。那可能不是你想要的
使用合适的括号,您根本不需要调用ToString
,因为policydepartmentname
将自动成为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;
好的,现在开始工作。我添加了括号,将.Single改为.First,并删除了.ToString。我理解导致问题的单一因素(字符而不是整个字符串),但为什么我需要括号?哦,是不是因为没有括号,我在打电话。首先是关于p.DepartmentName而不是整个查询?没错。您正在为每个
部门名称
获取一个字符,而不是整个集合中的单个部门名称
。现在开始工作。我添加了括号,将.Single改为.First,并删除了.ToString。我理解导致问题的单一因素(字符而不是整个字符串),但为什么我需要括号?哦,是不是因为没有括号,我在打电话。首先是关于p.DepartmentName而不是整个查询?没错。您为每个DepartmentName
获取单个字符,而不是整个集合中的单个DepartmentName
。