我在SQL中有一个存储GUID的列(uniqueidentifier)。我发现它是大写的。但是当通过存储过程返回数据到C#代码时,它变成了小写。
我在数据访问中使用实体框架。这可能是什么原因,我能避免这种转换吗?
我在数据访问中使用实体框架。这可能是什么原因,我能避免这种转换吗?
uniqueidentifier
数据将转换为Guid。
以指定格式表示的此Guid值,表示为一系列小写十六进制数字。
如果需要在应用程序中保持一致性,可以在从Guid获取字符串时使用一个格式。
查看 Guid.ToString方法(字符串)获取可用格式。
有可能会出现从数据库获取guid作为字符串的情况,因此会无限制地使用大写字母。(检查存储过程、视图等...)
为了避免这个问题,您必须确保返回 uniqueidentifier
本身,不要转换为varchar,并且在转换为字符串时遵循一个标准格式。
对于其他操作,例如比较等,您可以使用Guid运算符。
Guid.NewGuid().ToString()
返回小写字符串,在SQL server中 SELECT NEWID()
返回大写字符串? - Timeless
uniqueidentifier
在.NET中被称为GUID
。GUID
只是一个数字,格式化为十六进制值,并添加了一些破折号以便于阅读。如果您正在使用GUID
类型,则abc12
与ABC12
完全相同。如果您将其转换为字符串,然后在C#
中执行一些操作,则应该停止这样做-这不是它的预期用法。 - Jarek