我在MVC 5中使用ASP.NET标识,想知道在查询表时执行字符串比较的最佳方法,在该表中,记录是以userId作为外键输入的。
通常我会选择==
,但我不确定.NET标识中userId的字符串是如何创建的。我想这实际上是一个隐藏的GUID,所以我认为==
会很好,但我想知道文化或案例是否会涉及其中。
有人知道这个字符串是否是==
类型比较的唯一GUID吗?或者我应该使用string.Equals
和一些StringComparison
选项来说明区域性吗?
ASP.NET Identity可以使用GUID作为密钥。在这种情况下,GUID不应具有任何特定于区域性的字符。所以StringComparision. InvariantCultureIgnoreCase
应该换成C#中的string.Equals
。ToLower
(ToUpper
)可以用于SQL查询(LINQ)。
您可能希望在此处使用Ordinal/OrdinalIgnoreCase StringComparisons,因为它可以逐字符比较字符串,而不考虑语言约定。
点击此处阅读更多信息:https://msdn.microsoft.com/en-us/library/cc165449.aspx
这里:https://msdn.microsoft.com/en-us/library/system.stringcomparison(v=vs.110).aspx
代码示例:
string1.Equals(string2, StringComparison.Ordinal);
string1.Equals(string2, StringComparison.OrdinalIgnoreCase);