【发布时间】:2016-05-05 09:28:29
【问题描述】:
我在 Helper 方法类中创建了删除变音符号的扩展方法,
namespace MvcCms.Models.Utilities
{
public static class HelperMethods
{
public static string RemoveDiacritics(this string stIn)
{
string stFormD = stIn.Normalize(NormalizationForm.FormD);
StringBuilder sb = new StringBuilder();
for (int ich = 0; ich < stFormD.Length; ich++)
{
UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[ich]);
if (uc != UnicodeCategory.NonSpacingMark)
{
sb.Append(stFormD[ich]);
}
}
return (sb.ToString().Normalize(NormalizationForm.FormC));
}
}
}
我创建了一个控制器,它具有 Json 结果操作搜索没有变音符号的术语,
using MvcCms.Models.Utilities;
namespace MvcCms.Controllers
{
public class AjaxController : ControllerHelper
{
public JsonResult AutoCompleteCategories(string term, int id)
{
string termWithoutDiacritics = term.RemoveDiacritics();
var searchResult = db.C_Categories.Where(x => x.CatVocId == id && (x.Title.RemoveDiacritics().ToUpper().Contains(term.ToUpper()) || x.Title.ToUpper().Contains(termWithoutDiacritics.ToUpper())));
var jsonResult = searchResult.Select(results => new { id = results.CatId, name = results.Title });
return Json(jsonResult, JsonRequestBehavior.AllowGet);
}
}
}
当我运行代码时,它给了我错误:LINQ to Entities 无法识别方法 'System.String RemoveDiacritics(System .String)' 方法,并且该方法不能翻译成store表达式
【问题讨论】:
标签: c# asp.net-mvc entity-framework linq