C# 返回表中的唯一记录值
ClientAccountAccess表将只有一条记录,其中包含ID和GUID。 我想以字符串形式返回GUIDC# 返回表中的唯一记录值,c#,linq,entity-framework,C#,Linq,Entity Framework,ClientAccountAccess表将只有一条记录,其中包含ID和GUID。 我想以字符串形式返回GUID private static string GetAccessCode() { using (EPOSEntities db = new EPOSEntities()) { string clientAccessCode = from e in db.ClientAccountAccesses
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的值
??
感谢您的回复如果匹配结果不应超过一个,请使用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
。您还可以使用lambda语法:
private static string GetAccessCode()
{
using (EPOSEntities db = new EPOSEntities())
{
return db.ClientAccountAccesses
.Where(e => String.IsNullOrWhiteSpace(e.GUID))
.Select(e => e.GUID)
.FirstOrDefault();
}
}
如果匹配的结果不应超过一个,请使用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
。您还可以使用lambda语法:
private static string GetAccessCode()
{
using (EPOSEntities db = new EPOSEntities())
{
return db.ClientAccountAccesses
.Where(e => String.IsNullOrWhiteSpace(e.GUID))
.Select(e => e.GUID)
.FirstOrDefault();
}
}
如果只有一条记录,你为什么要费心过滤呢?过滤只包含空/空白值是特别奇怪的…如果只有一条记录,为什么还要费心过滤?过滤只包括空/空白值是特别奇怪的。。。