Magazine Internet

Linq to SQL et String.Compare

Publié le 06 août 2008 par Jeremy.jeanson
Comme un nombre grandissant de développeurs, je suis un grand fan de Linq to SQL. Il faut dire qu'il y a de quoi :). Bon soyons réaliste, j'apprécie aussi la verdure le calme... et les méthodes statiques de la classe String, notamment String.Compare. Et pourtant quand on associé Linq to SQL à String.Compare... "c'est le drame!". Ces deux éléments ne sont pas du tout compatibles. Alors commant faire une comparaison insensible à la casse?
Pire encore après un petit tour sur le site MSDN (via ce lien) je trouve tout une série de méthodes non supportées! arg :(. Linq deviendrait il ne nouvel Eldorado de l'incompatibilité? Par chance non, en bas de la page citée ci-dessus se trouve un petit texte explicatif (que bien entudu personne ne lit) :
Differences from .NET
  • Queries do not account for SQL Server collations that might be in effect on the server, and therefore will provide culture-sensitive, case-insensitive comparisons by default. This behavior differs from the default, case-sensitive semantics of the .NET Framework.
  • When LastIndexOf returns 0, either the string is NULL or the found position is 0.
  • Unexpected results might be returned from concatenation or other operations on fixed-length strings (CHAR, NCHAR), because these types automatically have padding applied in the database.
  • Because many methods, such as Replace, ToLower, ToUpper, and the character indexer, have no valid translation for TEXT or NTEXT columns and XML, SqlExceptions occur if translated normally. This behavior is considered acceptable for these types. However, all string operations must match common language runtime (CLR) semantics for VARCHAR, NVARCHAR, VARCHAR(max), and NVARCHAR(max).
Ouf, En fait la comparaison de String est insensible à la casse par défaut :). Voila qui a de quoi rassuré, nous sommes sauvés!

Retour à La Une de Logo Paperblog

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte