用SQL2005为某个表的字段建立了全文索引,以EntityFramework来做数据层,要怎么样查询才能利用到全文索引来提高查询性能?
EF5已经支持了
用contains 或 自己构建SQL
EF里where里的contains不行,我试了,根本不会用到我建立的全文索引,查询超过30秒,而我自己的sql只用了不到一秒。
@沧海一杰: 如果我全部都自己构建SQL了,还要EF干什么?
@沧海一杰: 不是所有功能都能顾及的
@Yu: 我试写了一下,业务好复杂,我宁愿不用全文索引了,EF要强大起来啊
@沧海一杰:
var query = context.ExecuteStoreQuery<Project>(
"SELECT * FROM Project WHERE FREETEXT(*,{0})",
searchText
).AsQueryable();
FYI
@Yu: 这个我知道,但业务很复杂,EF中有近10张表join,好几个表还是子join, 还要数据分页,搞了一天。但幸好找到一个方案,EF5已经支持全文检索,就是把人搜的。看来项目得升级呀。