1

我需要立即帮助。): 我不懂英语。

ASP.NET MVC 3 Linq 大写或小写包含搜索

例子:

string metin="baris";

var IcerikAra = (from icerik in Context.dbDokumanEditor
join kategori in Context.dbDokumanKategori on 
icerik.KategoriID equals kategori.KategoriID
where icerik.Icerik.toLower().Contains(metin)
select new { 
KategoriID=kategori.
KategoriAd=kategori.KategoriAd
}).ToList();

例外堆栈跟踪:

at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommandentityCommand, CommandBehavior behavior)
at System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator()
at System.Data.Entity.Internal.Linq.InternalQuery`1.GetEnumerator()
at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Plus.Areas.DokumanEditor.Controllers.DokumanController.DokumanIcerikAramaBaslat(String metin)

错误消息:执行命令定义时发生错误。有关详细信息,请参阅内部异常。

谢谢..

4

2 回答 2

3

在 where 子句中使用 String.Equals

where icerik.Icerik.Equals(metin,StringComparison.CurrentCultureIgnoreCase)
于 2012-07-02T09:13:32.453 回答
1

我解决如下:

database datatype text -> old
database datatype nvarchar(MAX) -> new

var IcerikAra = (from icerik in Context.dbDokumanEditor
                 join kategori in Context.dbDokumanKategori on icerik.KategoriID equals kategori.KategoriID
where icerik.Icerik.ToLower().Contains(metin)
select new { 
     KategoriID=kategori.KategoriID,
     KategoriAd=kategori.KategoriAd
}).ToList();
于 2012-07-02T18:42:47.943 回答