C# Linq查询中的Guid.ToString()?
我有一个方法,它试图用一个简单的where子句从我的db中提取一条记录。我有一个问题,因为我正在传入一个字符串值并将其与Guid(uniqueIdentifier)匹配。我需要将传递的值作为字符串绑定到DataGrid中,并且需要方法返回字符串 显然,在运行时,LinQ无法编译查询。无法将C# Linq查询中的Guid.ToString()?,c#,sql,linq,C#,Sql,Linq,我有一个方法,它试图用一个简单的where子句从我的db中提取一条记录。我有一个问题,因为我正在传入一个字符串值并将其与Guid(uniqueIdentifier)匹配。我需要将传递的值作为字符串绑定到DataGrid中,并且需要方法返回字符串 显然,在运行时,LinQ无法编译查询。无法将.ToString()方法编译为SQL。有什么想法吗 private string getFileLocation(string LinkGuid) { try { ISESEn
.ToString()
方法编译为SQL。有什么想法吗
private string getFileLocation(string LinkGuid)
{
try
{
ISESEntities context = new ISESEntities();
string query = (from f in context.tbFileAttachments
where f.CCCPGUID.ToString() == LinkGuid
select f.FileLocation).First();
return query;
}
catch(Exception e)
{
blah blah
}
}
切换逻辑并将
LinkGuid
参数转换为Guid:
private string getFileLocation(string LinkGuid)
{
try
{
Guid search = Guid.Parse(LinkGuid);
ISESEntities context = new ISESEntities();
string query = (from f in context.tbFileAttachments
where f.CCCPGUID == search
select f.FileLocation).First();
return query;
}
catch(Exception e)
{
blah blah
}
}
LINQ提供程序可能不知道如何将
ToString
从Guid
属性转换为SQL查询。对于示例,我将使用Guid
对象进行比较:
Entities context = new ISESEntities();
Guid linkGuid = Guid.Parse(LinkGuid);
string query = (from f in context.tbFileAttachments
where f.CCCPGUID == linkGuid
select f.FileLocation).First();
return query;
不要在
Guid
字段上调用ToString
,而是将参数字符串转换为Guid,然后在查询中传递:
Guid parameterGuid = Guid.Parse(LinkGuid);
string query = (from f in context.tbFileAttachments
where f.CCCPGUID == parameterGuid
select f.FileLocation).First();
太好了,谢谢你们。Guid.Parse()方法,非常有用:)