簡體   English   中英

使用linq / lambda表達式搜索並選擇倍數

[英]Search and select multiples with where linq/lambda expressions

我目前有以下代碼:

var FirstNameList = db.Clients.Include(x => x.FirstNames).Include(x => x.Addresses).SelectMany(a => a.FirstNames).Where(x => x.Name.ToLower().Trim() == "Max".ToLower().Trim()).ToList();

我具有FirstNames和Addresses的導航屬性,該屬性包含在結果中。

我使用SelectMany語句,因為對我而言,它是唯一有效的語句。 的種類。 它返回名稱等於最大值的所有名字。

我想做的是從表FirstNames中返回所有屬性名稱等於Max的Client。

我想到的另一種方法是獲取FirstNameList返回的所有ID,然后通過針對FirstNameList查詢數據來返回客戶端,但是我將查詢數據庫兩次,這似乎效率很低。

我的問題是可能嗎?如果可以,如何查詢數據庫以返回我的客戶?

親切的問候

以下查詢將為您提供所需的信息。 您可以查看每個客戶端的名字,並查看其中是否有一個名為“ max”。 (在這種情況下,由於“ max”是您輸入的常量,因此我從中刪除了ToLower()。Trim())

var clientsNamedMax = db.Clients.Include(x => x.FirstNames).Include(x => x.Addresses).Where(x => x.FirstNames.Any(y => y.Name.ToLower().Trim() == "max")).ToList();

暫無
暫無

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

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