使用linq to SQL指定where子句
本文关键字:where 子句 指定 SQL linq to 使用 | 更新日期: 2023-09-27 18:04:18
我使用此方法来获取结果来填充我的网格,但此方法也用于填充另一个网格,该网格需要一个带有两个参数的where子句和这个子句只需要一个。即使我传递了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;
}
对于可空类型,尝试如下:
doc.LibraryID == (lib ?? doc.LibraryID)
在你的例子中(一个System.Guid),你可以这样做:
doc.LibraryID == (lib == Guid.Empty ? doc.LibraryID : lib)