簡體   English   中英

在Linq中使用where條件進行過濾

[英]Filtering in Linq with where condition

我想為我的應用程序吸引來自大陸的用戶。 我為此使用了以下代碼。 現在,我想顯示所有用戶,如果continentId為null。 我該如何實現?

public async Task<IEnumerable<User>> GetUsersByContinent(int? continentId)
{
     var users = await _context.Users
            .Include(u => u.Country).ThenInclude(c => c.Continent)
            .Where(u => u.Country.ContinentId == continentId)
            .OrderBy(u => u.Username)
            .ToListAsync();

    return users;
}

您可以使用使用方法鏈來解決您的問題。

public async Task<IEnumerable<User>> GetUsersByContinent(int? continentId)
{
     var baseQuery= _context.Users.Include(u => u.Country).ThenInclude(c => c.Continent);

     if (continentId.HasValue){
         baseQuery = baseQuery.Where(u => u.Country.ContinentId == continentId)
     }

     return await baseQuery.OrderBy(u => u.Username).ToListAsync();
}

我可能會使用@Jehof解決方案,但值得一提的是其他解決方案。

.Where(u => continentId == null || u.Country.ContinentId == continentId)

暫無
暫無

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

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