Linq не работает с кхмерским юникодом - PullRequest
3 голосов
/ 30 марта 2012

Я разработал с примером приложения в C # .Net Framework 4.0 и SQL Server 2008. Когда запрос с linq с методом содержат не работает с кхмерским Unicode.

Примечание: поле уже имеет тип NVARCHAR

Пример таблицы структуры:

Person (id, name nvarchar(200))

Linq part :

var predicate = PredicateBuilder.True<Person>();

String strName = "ក";

predicate = predicate.And(e => e.Person.name.Contains(strName));

var query = Person.where(predicate);

return query.ToList();

В результате все записи о том, что имя, начинающееся с «ក», не отображаются в поле зрения.

Не могли бы вы дать мне решение?


Класс модели для сопоставления с таблицей:

[Table(Name = "machine.PERSON")]
public class PersonModel : IEntity {
  [Column(Name = "id", DbType = "numeric(18,0) NOT NULL IDENTITY", IsPrimaryKey = true, IsDbGenerated = true)]
  public long Id { get; set; }
  [Column(Name = "name", DbType = "nvarchar(255) NULL")]
  public String Name { get; set; }
}

Пример кода linq для поиска значения из db:

var predicate = PredicateBuilder.True<PersonModel>(); 
String strName = "ក";
predicate = predicate.And(p => p.Name.StartsWith(); 
var q = PersonModel.Where(predicate); 
var result = from P in q select new {P.Id, P.Name}; return result.ToList(); 

Передача оператора Sql по linq:

SELECT [t0].[id] AS [Id], [t0].[name] AS [Name]
FROM [machine].[PERSON] AS [t0]
WHERE [t0].[name] LIKE @p0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...