對于一個學校專案,我必須制作一個簡單的網站,我必須根據用戶型別搜索成員,然后顯示這些成員。我有 5 個屬性要查找(名字和姓氏、性別、級別、俱樂部)。他們必須一起作業,但有些可能是空的。
public List<Lid> ZoekLeden(string deelVoornaam, string deelNaam, string geslacht, string niveau, string deelClubNaam)
{
var filteredleden = context.Leden.Include(lid => lid.ClubNrNavigation)
.OrderBy(l => l.Naam)
.Where(l => l.Voornaam.Contains(deelVoornaam))
.Where(l => l.Naam.Contains(deelNaam))
.Where(l => l.Geslacht.Equals(geslacht))
.Where(l => l.Niveau.Equals(niveau))
.Where(l => l.ClubNrNavigation.Naam.Contains(deelClubNaam))
.ToList();
return filteredleden;
}
可悲的是它一直回傳 0,我不知道為什么。
我測驗了每個單獨的屬性,它們都回傳了正確的成員。但是當我使用多個時,它們總是回傳 0。有誰知道為什么會發生這種情況以及我該如何解決?
uj5u.com熱心網友回復:
嘗試這個
public List<Lid> ZoekLeden(string deelVoornaam, string deelNaam, string geslacht, string niveau, string deelClubNaam)
{
IQueryable<Lid> filteredleden = context.Leden
.Include(lid => lid.ClubNrNavigation);
if (!string.IsNullOrEmpty(deelVoornaam))
filteredleden = filteredleden.Where(l => l.Voornaam.Contains(deelVoornaam));
if (!string.IsNullOrEmpty(deelNaam))
filteredleden = filteredleden.Where(l => l.Naam.Contains(deelNaam))
if (!string.IsNullOrEmpty(geslacht))
filteredleden = filteredleden.Where(l => l.Geslacht.Equals(geslacht))
if (!string.IsNullOrEmpty(niveau))
filteredleden = filteredleden.Where(l => l.Niveau.Equals(niveau))
if (!string.IsNullOrEmpty(deelClubNaam))
filteredleden = filteredleden.Where(l => l.ClubNrNavigation.Naam.Contains(deelClubNaam));
return filteredleden.OrderBy(l => l.Naam).ToList();
}
uj5u.com熱心網友回復:
您正在鏈接 .Where(),它相當于 if(bool && bool && bool)。相反,我認為你需要 if(bool || bool || bool)
所以 LINQ 陳述句應該是:
var filteredleden = context.Leden.Include(lid => lid.ClubNrNavigation)
.OrderBy(l => l.Naam)
.Where(l => l.Voornaam.Contains(deelVoornaam)
|| l.Naam.Contains(deelNaam)
|| l => l.Geslacht.Equals(geslacht)
|| l => l.Niveau.Equals(niveau)
|| l => l.ClubNrNavigation.Naam.Contains(deelClubNaam)
)
.ToList();
如果您確實需要 &&,那么您的資料集中可能沒有任何內容符合鏈式 .Where()s 中的所有條件
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/520068.html
上一篇:是否可以使用表單填充資料模型并將其從Razorpage發送到控制器?
下一篇:從資料庫優先方法生成的修改模型
