我在 SQL 中有一个存储 guid 的列(唯一标识符)。我看到它是大写的。但是当数据通过SP返回到C#代码时,就变成小写了
我在数据访问中使用实体框架。可能是什么原因?我可以避免这种转换吗?
如果您使用实体框架,
uniqueidentifier
数据将转换为Guid。
这个Guid的值,表示为一系列小写字母 指定格式的十六进制数字。
如果您需要应用程序的一致性,则可以在从 Guid 中获取字符串时使用一种格式。
检查 Guid.ToString 方法(字符串) 是否有可用格式
可能有一个地方可以从数据库中以字符串形式获取 guid,这样它将是无限大写的。 (检查存储过程视图等..)
为了避免此问题,您必须确保按原样返回
uniqueidentifier
,不要转换为 varchar,并且在转换为字符串时遵循一种搁浅格式。
对于比较等其他操作..您可以使用Guid运算符..
我怀疑SQL Server将uniqueidentifier存储为128位整数,然后将其转换为十六进制进行显示。正如亚历山大所说,它以大写还是小写形式显示这个十六进制值并不重要,因为它们代表相同的东西。
如果它对您的应用程序很重要,那么您可以在 C# 中将其转换为大写,没有问题。