top*_*ool 1 c# entity-framework entity-framework-6 asp.net-core
我想使用Entity Framework(EF6)创建搜索查询。为了更好地理解,我将举例说明。
我有5个字(字符串)。
“我的名字是杰克”
我的年龄是35岁
“我的工作是开发人员”
“你叫什么名字”
“中国人口超过十亿”
现在,我想创建一个具有以下结果的EF查询搜索:
My name,结果是数字1和2以及3和4is结果为数字1和2以及3和4和5这是我的查询:
var query = (from q1 in _db.QuestionTbl where q1.questionTitle.Any(a => q1.questionTitle.Contains("search")) select q1).ToList();
Run Code Online (Sandbox Code Playgroud)
但是我找不到正确的答案。
@jonaChaz的答案有效,但在一种重要方式上效率低下:它将为搜索中的每个术语生成1次SQL往返查询。如果您改用这种方式编写,则EntityFramework会将其编译为单个查询/服务器往返行程,并可以节省大量开销,尤其是对于长期搜索而言:
string search = "My name";
var terms = search.Split(' ');
var results = _db.QuestionTb1
.Where(q => terms.Any(term => q.questionTitle.Contains(term)))
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |