我不明白爲什麼這個查詢不起作用,你能幫我嗎?Linq空參數不起作用
public static IEnumerable<SelectListItem> MyList(int? id, string name="")
{
var list =db.Entity
.Where(p=>
(name==null? p.Name !=null : p.Name==name) &&
(id.hasValue || p.Id==id)
.Select(n=>new SelectListItem()
{
Text=n.Name,
Value=n.Id.ToString()
}).ToList();
return list;
}
我希望在兩個參數都爲空時列出完整列表!但是當兩個參數都爲空時我會得到一個空列表。
片段代碼來自一個包含幾個像這樣的查詢的大方法。
你大概的意思'(!id.HasValue || p.Id == ID)' – Rhumborl
你真的確認你與兩個參數'null'測試?可疑的是,您將'name'的默認值設置爲空字符串,這幾乎肯定不會匹配任何記錄。 – hvd
我認爲它應該是'id.hasValue && p.Id == id' – Shaharyar