10

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

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

4

2 回答 2

9

如果您使用实体框架,uniqueidentifier数据将转换为 Guid。

此 Guid 的值,以指定格式的一系列小写十六进制数字表示。

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

检查Guid.ToString 方法(字符串) 以获取可用格式

可以有一个地方,您可以从数据库中获取 guid 作为字符串,这样就可以无限大写。(检查存储过程视图等。)

为避免此问题,您必须确保uniqueidentifier按原样返回,不要转换为 varchar,并且在转换为字符串时也遵循一种搁浅格式。

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

于 2013-06-05T11:12:24.477 回答
3

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

如果它对您的应用程序很重要,那么您可以毫无问题地将其转换为 C# 中的大写字母。

于 2013-06-05T11:10:31.140 回答