1

我正在使用这种方法来获得填充我的网格的结果,但是这种方法也用于填充另一个网格,它需要一个带有两个参数的 where 子句,而这个只需要一个。即使我传入了未使用的参数的 null ,但由于 where 子句,它仍然没有返回任何结果。关于我如何改变它的任何建议都可以使用 linq to 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;
}
4

1 回答 1

2

对于可为空的类型,试试这个:

doc.LibraryID == (lib ?? doc.LibraryID)

在你的情况下(一个 System.Guid)你可以试试这个:

doc.LibraryID == (lib == Guid.Empty ? doc.LibraryID : lib)
于 2013-03-15T13:50:25.750 回答