【EF】多表查詢,左聯接

這是內聯接

DataModelContainer db = new DataModelContainer();
var dataModels = from slide in db.Slide
                 join slideBarcode in db.SlideBarcode on slide.ID equals slideBarcode.SlideID
                 where slide.IsDeleted == false && slide.CaseID == caseId
                 orderby slide.ID
                 select new Slide
                 {
                     SlideID = slide.ID,
                     Description = slide.Description,
                     CreatedDate = slide.CreatedDate,

                     Barcode = slideBarcode .Barcode,
                     PrintDate = slideBarcode .PrintDate
                 };

這是左聯接

DataModelContainer db = new DataModelContainer();
var dataModels = from slide in db.Slide
                 join slideBarcode in db.SlideBarcode on slide.ID equals slideBarcode.SlideID into slidebarcode
                 from sb in slidebarcode.DefaultIfEmpty()
                 where slide.IsDeleted == false && slide.CaseID == caseId
                 orderby slide.ID
                 select new Slide
                 {
                     SlideID = slide.ID,
                     Description = slide.Description,
                     CreatedDate = slide.CreatedDate,

                     Barcode = sb.Barcode,
                     PrintDate = sb.PrintDate
                 };

使用into和DefaultIfEmpty()方法

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章