делая Linq чувствительным к регистру - PullRequest
3 голосов
/ 24 марта 2011

Я использую vs 2010 с linq to sql и sql server 2008. Как бы я сделал этот регистр чувствительным

  var Groups = from gp in _db.Groups 
               where gp.vcr_GroupName == GroupName 
               select gp;

здесь groupname=abc и groupname=ABC такое же

Ответы [ 3 ]

2 голосов
/ 24 марта 2011

используйте SqlMethods.Like, что с учетом регистра и доступно для SQL.

 where System.Data.Linq.SqlClient.SqlMethods.Like(gp.vcr_GroupName, GroupName)
2 голосов
/ 24 марта 2011

Это не точка для запроса linq.

Это параметр в SQL Server 2008. Microsoft Sql Server 2008 обрабатывает сравнения строк по умолчанию с учетом регистра.

Посмотрите на:http://msdn.microsoft.com/en-us/library/ms141038.aspx

0 голосов
/ 24 марта 2011

Предполагая, что GroupName является строкой, вы можете выполнить простое сравнение строк и игнорировать регистр:

var Groups = from gp in _db.Groups 
             where gp.vcr_GroupName.Equals(GroupName, StringComparison.OrdinalIgnoreCase) 
             select gp;
...