我有一个带有字符串Name属性的Worker实体,只想过滤Name包含某些特定字符串的所有Worker(来自前端文本输入)。
当我使用以下方法进行过滤时:
_context.Workers.Where(w => w.Name.ToUpper().Contains(filter.ToUpper()).ToList()
它正在工作,但不能解决过滤器术语中的某些变音符号。
当我尝试使用时:
var compareInfo = CultureInfo.InvariantCulture.CompareInfo;
_context.Workers.Where(w => compareInfo.IndexOf(w.Name, filter, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase) > -1).ToList()
我得到System.NullReferenceException: 'Object reference not set to an instance of an object.'
和控制台An exception occurred in the database while iterating the results of a query for context type 'Project.MyDbContext'.
我也尝试过
_context.Workers.Where(w => compareInfo.IndexOf((w.Name??""), filter, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase) > -1).ToList()
执行空检查,但相同。
有人有同样的问题吗?或者也许知道在这里有什么可以改变的地方,以便我能完成变音符号的搜索?
谢谢!