我正在使用此方法来获取结果以填充我的网格,但此方法也用于填充另一个网格,该网格需要带有两个参数的where子句 只需一个。即使我传入了未使用的param的null,但由于where子句仍然没有返回结果。任何关于我如何的建议 改变这个可能使用linq到sql我调用方法来指定where子句而不是在获取数据的方法中?
DocsForReview.DataSource = docLib.GetGrid(Guid.Empty, lib);
using (var dc = new DocMgmtDataContext())
{
var subs = (from doc in dc.Documents
join u in dc.Users on doc.OwnedByUserID equals u.ID
where doc.OwnedByUserID == usr && doc.LibraryID == lib
select new StudentDocuments
{
DocID = doc.ID,
Assignment = doc.Library.Name,
Submitted = doc.UploadDT,
Student = u.FullName
}).OrderByDescending(c => c.Submitted).AsEnumerable().ToList();
return subs;
}
答案 0 :(得分:2)
对于可空类型,请尝试以下方法:
doc.LibraryID == (lib ?? doc.LibraryID)
在你的情况下(System.Guid)你可以试试这个:
doc.LibraryID == (lib == Guid.Empty ? doc.LibraryID : lib)