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

时间:2013-06-05 10:58:50

标签: c# entity-framework

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

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

2 个答案:

答案 0 :(得分:6)

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

  

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

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

检查Guid.ToString Method (String)是否有可用格式

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

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

对于比较等其他操作。你可以使用Guid操作符..

答案 1 :(得分:3)

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

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