SQL中的uniqueidentifier在c#中变成小写

问题描述 投票:0回答:2

我在 SQL 中有一个存储 guid 的列(唯一标识符)。我看到它是大写的。但是当数据通过SP返回到C#代码时,就变成小写了

我在数据访问中使用实体框架。可能是什么原因?我可以避免这种转换吗?

c# entity-framework
2个回答
10
投票

如果您使用实体框架,

uniqueidentifier
数据将转换为Guid。

这个Guid的值,表示为一系列小写字母 指定格式的十六进制数字。

如果您需要应用程序的一致性,则可以在从 Guid 中获取字符串时使用一种格式。

检查 Guid.ToString 方法(字符串) 是否有可用格式

可能有一个地方可以从数据库中以字符串形式获取 guid,这样它将是无限大写的。 (检查存储过程视图等..)

为了避免此问题,您必须确保按原样返回

uniqueidentifier
,不要转换为 varchar,并且在转换为字符串时遵循一种搁浅格式。

对于比较等其他操作..您可以使用Guid运算符..


3
投票

我怀疑SQL Server将uniqueidentifier存储为128位整数,然后将其转换为十六进制进行显示。正如亚历山大所说,它以大写还是小写形式显示这个十六进制值并不重要,因为它们代表相同的东西。

如果它对您的应用程序很重要,那么您可以在 C# 中将其转换为大写,没有问题。

© www.soinside.com 2019 - 2024. All rights reserved.