首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过实体框架实现Sql Server Freetext

通过实体框架实现Sql Server Freetext
EN

Stack Overflow用户
提问于 2011-05-06 14:03:34
回答 2查看 2.9K关注 0票数 10

我有一个现有的网站开发使用ASP.NET MVC 3和实体框架4查询一个Server 2008数据库。它包含一个包含大约10个字段的搜索表单,当用户单击submit按钮时,我动态地创建一个实体SQL请求,其中只包含指定的搜索字段,省略了空的字段。它起作用了。到目前一切尚好。

现在,客户端希望对其中一个字段进行全文搜索。我认为这个请求相当复杂,因为(AFAIK):

  • 实体框架本机不支持全文搜索
  • ,我希望避免使用存储过程包装FTS语法,因为到目前为止,我只使用“静态”SPs,将逻辑保留在.NET代码中。因此,我希望尽量避免在过程中构建查询。并且为每个可能的搜索字段组合创建一个过程不是一个选项。

到目前为止,我能想到的解决方案:

在WHERE子句中将存储过程或用户定义的函数放置为seach (我不确定这是否可能,though)

  • Getting只在临时表中执行),并在该临时表上执行其他筛选器。如果这个technique...有很多FTS结果,我害怕性能不好

用这个来吓唬你最好的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-06 21:37:24

您不能只使用原始sql吗?然后,您可以将逻辑保留在.NET代码中。

所以,它看起来就像:

代码语言:javascript
复制
string sql = "DO FULLTEXT STUFF";
MyObjectContext.ExecuteStoreQuery<MyEntity>(sql, .......);
票数 6
EN

Stack Overflow用户

发布于 2011-05-06 19:01:04

您不需要考虑性能-无论如何,这将是缓慢的,因为您将用标准字符串替换索引全文搜索,比较连接值。

有三条路可走:

queries.

  • Instead
  • 像现在一样动态地创建ESQL查询,但是使用
  • 用户定义的

函数或model defined function连接的值来计算导入到EDMX模型并公开给Linq- to实体的

  • 表搜索的搜索检查,直接使用带有计算列的视图(包含所有10个字段)并在该列上运行“全文”。

这些方法中的任何一个都不是性能的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5912559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档