1

我创建了大部分 C# 应用程序,其中核心是个人数据库(外围还有很多事情要做)。我将 EF 与 CodeFirst/DbContext 方法一起使用。对于我的前端,我有使用 MVVM 类型方法的 XAML。

我现在想要一个“感觉”像自由文本搜索的搜索框。我目前有一个可编辑的组合框,其属性设置为提供正确的感觉。我正在使用 EF 的“包含”查询方法来查询 SQL 数据库。

目前,我有以下几点:

x.Contains(p=> p.Forenames.Contains(s) || p.Surname.Contains(s))

这在有限的范围内运作良好。如果搜索字符串“s”同时包含名字和姓氏数据,这显然是一个问题。本质上,我希望用户能够通过键入“Joe Bloggs”“Bloggs,Joe”或中间名的各种组合等来进行搜索……我什至可能希望将来在搜索中添加地址数据。

我的问题是我如何实现这一目标?想到的第一种方法是拆分字符串,然后在 foreach 循环中将数组的各个组件传递给每个搜索词。这可能会导致多个相当大的查询。

通过对 EF 本身使用不同的查询策略来实现我想要实现的目标是更好的方法吗?我想让用户感觉他们输入的任何搜索词都在组合框中提供了一些合理的东西!

4

0 回答 0