1

このメソッドを使用してグリッドを埋める結果を取得していますが、このメソッドは、2つのパラメーターを持つwhere句を必要とする別のグリッドを埋めるためにも使用され、このメソッドは1つだけ必要です。使用されていないパラメータのnullを渡したにもかかわらず、where句のために結果が返されていません。これをどのように変更できるかについてのアドバイスは、データを取得するメソッドではなく、メソッドを呼び出してwhere句を指定するlinq to sqlを使用する可能性がありますか?

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

null許容型の場合は、次のことを試してください。

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

あなたの場合(System.Guid)、これを試すことができます:

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