【发布时间】:2011-08-20 05:34:19
【问题描述】:
我有一个使用 ASP.NET MVC 3 和 Entity Framework 4 开发的现有网站,用于查询 Sql Server 2008 数据库。它包含一个包含大约 10 个字段的搜索表单,当用户单击提交按钮时,我会动态创建一个 Entity SQL 请求,该请求仅包含指定的搜索字段,省略空字段。有用。到目前为止一切顺利。
现在,客户希望其中一个字段具有全文搜索行为。我认为这个请求非常复杂,因为(AFAIK):
- Entity Framework 本身不支持全文搜索
- 我想避免使用存储过程来包装 FTS 语法,因为到目前为止我只使用“静态”SP,将逻辑保留在 .NET 代码中。所以我想尽量避免在过程中构建查询。并且不能为每个可能的搜索字段组合创建一个过程。
目前我能想到的解决方案:
- 将存储过程或用户定义函数作为 seach 谓词放在 WHERE 子句中(但我不确定这是否可行)
- 在临时表中单独获取 FTS 结果,并在该临时表上执行其他过滤器。如果使用这种技术有很多 FTS 结果,我担心性能不佳...
处理这个问题的最佳方法是什么?
【问题讨论】:
标签: .net sql-server entity-framework entity-framework-4 full-text-search