我在MVC 5中使用ASP.NET身份,并想知道在执行字符串比较的最佳方式,例如,对使用userId作为外键输入记录的表的查询。
通常情况下,我只会对==
进行丰富,但我不确定如何创建.NET标识内的userId字符串。
我猜它实际上是引导下的GUID,所以我认为==
会好的,但我想知道文化或案例是否会进入它。
有人知道该字符串是==
类型比较的唯一GUID,还是我应该使用string.Equals
和一些StringComparison
选项来说明文化?
答案 0 :(得分:0)
ASP.NET Identity可以将GUID用于密钥。在这种情况下,GUID不应具有任何特定于文化的字符。因此StringComparision. InvariantCultureIgnoreCase
应该在C#中使用string.Equals
。 ToLower
(ToUpper
)可用于SQL查询(LINQ)。
答案 1 :(得分:0)
你可能想在这里使用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);