C# Linq不使用高棉unicode

C# Linq不使用高棉unicode,c#,sql-server,linq,unicode,linq-to-entities,C#,Sql Server,Linq,Unicode,Linq To Entities,我在C.NETFramework4.0和SQLServer2008中开发了示例应用程序。当使用linq和contain方法的查询不能使用高棉unicode时 注意:字段的类型已为NVARCHAR 结构表示例: Person (id, name nvarchar(200)) Linq part : var predicate = PredicateBuilder.True<Person>(); String strName = "ក"; predicate = predicat

我在C.NETFramework4.0和SQLServer2008中开发了示例应用程序。当使用linq和contain方法的查询不能使用高棉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();

要从db中搜索值的示例linq代码:

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语句吗?您能提供生成并执行的SQL语句吗?请参见此处,了解如何执行此操作的示例:以下是在我的应用程序中使用的示例代码:要与表映射的模型类:[TableName=machine.PERSON]公共类PersonModel:Entity{[ColumnName=id,DbType=numeric18,0 NOT NULL IDENTITY,IsPrimaryKey=true,IsDbGenerated=true]public long Id{get;set;}[ColumnName=name,DbType=nvarchar255 NULL]公共字符串名称{get;set;}}}要从db中搜索值的示例linq代码:var predicate=PredicateBuilder.True;字符串strName=ក predicate=predicate.Andp=>p.Name.StartsWith;var q=PersonModel.Wherepredicate;var result=从q中的P选择新的{P.Id,P.Name};返回result.ToList;linq传输的Sql语句:选择[t0].[id]作为[id],[t0].[name]作为[name],从[machine].[PERSON]作为[t0],其中[t0].[name]像@P00一样,您还需要了解@p0是如何声明的,以及它的值-如果没有声明为NVARCHAR,那么这可能就是它失败的原因。
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(); 
SELECT [t0].[id] AS [Id], [t0].[name] AS [Name]
FROM [machine].[PERSON] AS [t0]
WHERE [t0].[name] LIKE @p0