gpt4 book ai didi

c# - 如何在 Entity Framework 中查询名字和姓氏?

转载 作者:行者123 更新时间:2023-11-30 16:07:52 27 4
gpt4 key购买 nike

我想要一个相当智能的搜索框,用于按人名查找对象。在 linq 中,它看起来像这样:

users = users.Where(m => m.FirstName.Contains(query) || m.LastName.Contains(query) || (m.FirstName + " " + m.LastName).Contains(query) || (m.LastName + " " + m.FirstName).Contains(query) || (m.LastName + ", " + m.FirstName).Contains(query));

但这似乎是一种糟糕的做事方式,而且我真的不确定 Linq 会如何降低性能。这种类型的声明是否合适,或者是否有改进的方法?

最佳答案

EF 只是将 LINQ 查询转换为 SQL 并针对数据库执行 SQL 语句。您上面的查询将转换为带有 OR 的 where 子句。每个 contains() 都将转换为 SQL 中的一个 like。所以,你会得到类似的东西:

select *
from users
where FirstName like '%query%'
or LastName like '%query%'

只要生成的查询执行正常,您就应该没问题。

如果效果不佳,您可以考虑添加索引或使用全文搜索。

https://msdn.microsoft.com/en-us/library/ms142571.aspx

关于c# - 如何在 Entity Framework 中查询名字和姓氏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30175929/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com