[英]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.