我需要通过数据库中的产品搜索产品,我希望以正确的方式进行设置,以便在有很多行 (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() 会降低性能吗?
  • 我在描述上有关于 NameFullText 的常规索引?这是否合适,常规索引是否适用于 .contains()
  • 我应该使用 LINQ 还是其他方法?
  • 有没有办法做到这一点,我可以获得搜索文本在名称/描述中出现的次数?

  • 谢谢

    最佳答案

    我会认真考虑编写一个存储过程来执行此操作,或者使用 SqlQuery 在 DbContext 中编写原始 sql。如果我正在编写这段代码,那就是我会做的。对我来说 EntityFramework 和 performanceant 从来没有真正走到一起。

    关于c# - 使用 Linq、 Entity Framework 和数据库索引正确搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15692627/

    10-12 12:43
    查看更多