Linq to Entity comparing strings ignores white spaces

前端 未结 1 631
误落风尘
误落风尘 2020-12-20 17:04

When using LINQ to entity doing string comparisons will ignore white spaces.

In my table, I have an nchar(10) column so any data saved if it is not 10 characters wil

相关标签:
1条回答
  • 2020-12-20 17:27

    This answer explains why.

    SQL Server follows the ANSI/ISO SQL-92 specification (Section 8.2, , General rules #3) on how to compare strings with spaces. The ANSI standard requires padding for the character strings used in comparisons so that their lengths match before comparing them. The padding directly affects the semantics of WHERE and HAVING clause predicates and other Transact-SQL string comparisons. For example, Transact-SQL considers the strings 'abc' and 'abc ' to be equivalent for most comparison operations.

    The only exception to this rule is the LIKE predicate. When the right side of a LIKE predicate expression features a value with a trailing space, SQL Server does not pad the two values to the same length before the comparison occurs. Because the purpose of the LIKE predicate, by definition, is to facilitate pattern searches rather than simple string equality tests, this does not violate the section of the ANSI SQL-92 specification mentioned earlier.

    Internally LINQ is just making SQL queries against your database.

    0 讨论(0)
提交回复
热议问题