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