中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

將不確定變成確定~LINQ查(cha)詢兩種寫法(fa),性(xing)能沒有影響,優(you)化(hua)查(cha)詢應該是“按需查(cha)詢”

回到目錄

如(ru)果在linq中希(xi)望進(jin)行一對(dui)多的復合查(cha)詢時,請直(zhi)接在查(cha)詢中使用join into,或者使用let 關鍵字(zi),當然在建立實體(ti)時動(dong)態賦(fu)值對(dui)于查(cha)詢的性能(neng)也是沒有影響的,兩(liang)次查(cha)詢結果完成相同

一 :在實體中賦值

var linq = from data in this.GetModel()
                       join data2 in iWebDepartmentsRepository.GetModel() on data.DepartmentID equals data2.DepartmentID
                       select new WebManageUsers_Ext
                      {
                          ManageUserID = data.ManageUserID,
                          LoginName = data.LoginName,
                          WebDepartments_Extend = data2,
                          WebManageUser_WebManageRoles_Extend = new WebManageUser_WebManageRolesRepository().GetModel().Where(i => i.ManageUserID == data.ManageUserID),
                          AvatarUrl = data.AvatarUrl,

                      };

在語句(ju)中使(shi)用let關鍵字

var linq = from data in this.GetModel()
                       join data2 in iWebDepartmentsRepository.GetModel() on data.DepartmentID equals data2.DepartmentID
                       let list = new WebManageUser_WebManageRolesRepository().GetModel().Where(i => i.ManageUserID == data.ManageUserID)
                       select new WebManageUsers_Ext
                      {
                          ManageUserID = data.ManageUserID,
                          LoginName = data.LoginName,
                          WebDepartments_Extend = data2,
                          WebManageUser_WebManageRoles_Extend = list,
                          AvatarUrl = data.AvatarUrl,

                      };
兩次的SQL分析器的結果是完成一樣的
  
當然,對于LINQ的查詢,最好的方式就是“按需”查詢,也就是說,用到哪些字段就select哪些字段,代碼可能是這樣:
var linq = from data in db.WebManageUsers
                     join data2 in db.WebDepartments on data.DepartmentID equals data2.DepartmentID
                     let list1 = db.WebManageUser_WebManageRoles.Where(i => i.ManageUserID == data.ManageUserID).Select(j => new WebManageUser_WebManageRoles_Ext
                    {
                        ManageRoleID = j.ManageRoleID,
                        ManageUserID = j.ManageUserID
                    })
                     select new WebManageUsers_Ext
                     {
                         ManageUserID = data.ManageUserID,
                         LoginName = data.LoginName,
                         RealName = data.RealName,
                         WebDepartments_Extend = new WebDepartments_Ext { DepartmentName = data2.DepartmentName },
                         WebManageUser_WebManageRoles_Extend = list1,
                     };
回到目錄
posted @ 2012-04-26 10:11  張占嶺  閱讀(1083)  評論(1)    收藏  舉報