我正在尝试将GUID作为字符串通过Web服务传递,但是我遇到了一些问题。GUID存储在SQL Server中作为UNIQUEIDENTIFIER
,EF将其作为GUID提取出来。我想要做的是在我的查询中执行以下操作:
var query = myEntities.Foo.Where(q => q.Id== Id)
.Select(bar =>
new Bar()
{ BString = bar.GUID }
);
现在,C#会抛出一个构建错误,提示你无法将
System.Guid
转换为string
,所以我认为你可以这样做:{ BString = bar.GUID.ToString() }
甚至更多
{ BString = Convert.ToString(bar.GUID) }
但两者都以运行时异常结束:
出现了异常,它是 System.NotSupportedException: LINQ to Entities 不认识方法 'System.String ToString(System.Object)',而且此方法无法转换为存储表达式。
因此,我认为在这两种情况下,它都不能找到从 UniqueIdentifier
到 varchar
的 T-SQL 等效方法。
除了检索对象,然后迭代返回集合并在该点将 guid->string 转换的方式之外,还有其他方法吗?
谢谢。