簡體   English   中英

如何查詢實體框架中的名字和姓氏?

[英]How to query first and last name in Entity Framework?

我希望有一個相當智能的搜索框,用於按人名查找對象。 在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM