ClientAccountAccess表只有一条记录,包含ID和GUID。 我想将GUID作为字符串返回。
private static string GetAccessCode()
{
using (EPOSEntities db = new EPOSEntities())
{
string clientAccessCode = from e in db.ClientAccountAccesses
where string.IsNullOrWhiteSpace(e.GUID)
select e.GUID;
return clientAccessCode;
}
}
select抛出一个错误,说无法将Ienumerable转换为字符串,但我不想创建一个IEnumerable clientAccessCode,正如我所说,这个表中只有一条记录,我想返回GUID的值。 / p>
? 谢谢你的回复
答案 0 :(得分:5)
如果不应有多个匹配结果,请使用FirstOrDefault()
或SingleOrDefault()
:
private static string GetAccessCode()
{
using (EPOSEntities db = new EPOSEntities())
{
var clientAccessCodes = from e in db.ClientAccountAccesses
where string.IsNullOrWhiteSpace(e.GUID)
select e.GUID;
return clientAccessCodes.FirstOrDefault();
}
}
注意 - 查询结果的类型为IEnumerable<string>
。您还可以使用lambda语法:
private static string GetAccessCode()
{
using (EPOSEntities db = new EPOSEntities())
{
return db.ClientAccountAccesses
.Where(e => String.IsNullOrWhiteSpace(e.GUID))
.Select(e => e.GUID)
.FirstOrDefault();
}
}