我需要通过数据库中的产品搜索产品,我希望以正确的方式进行设置,以便在有很多行 (1,000,000) 时能够获得稳定的性能。我对 LINQ 和 EF 有点经验,但从来没有写过任何搜索算法,我有以下代码,但只有一些挥之不去的问题。
context.products.Where(i => i.Name.ToLower().Contains(searchText.ToLower());
我还需要搜索描述。
context.products.Where(i => i.Description.ToLower().Contains(searchText.ToLower());
.ToLower()
会降低性能吗? Name
和 FullText
的常规索引?这是否合适,常规索引是否适用于 .contains()
? 谢谢
最佳答案
我会认真考虑编写一个存储过程来执行此操作,或者使用 SqlQuery
在 DbContext 中编写原始 sql。如果我正在编写这段代码,那就是我会做的。对我来说 EntityFramework 和 performanceant 从来没有真正走到一起。
关于c# - 使用 Linq、 Entity Framework 和数据库索引正确搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15692627/