2
코드로 linq2sql 그룹을 작성하는 더 좋은 방법이 있습니까? T-SQL 버전과 비교해 보면 너무 길어서 성능 문제가있는 것 같습니다. 난 당신이 외부 필요하다고 생각하지 않습니다이 Linq SQL 그룹에 대한 더 나은 방법이 있습니까
var Result = (
// [ 1. JOIN
from l in db.Lists
where l.ProfileID == ID
join item in db.Items on l.ID equals item.ListID into ListItem
//orderby l.CreateDate descending
// ]
// [ 2. JOIN - 1. GROUPBY
from l_item in ListItem.DefaultIfEmpty() // left join için
group l_item by new {
l.CategoryID,
l.CreateDate,
l.Header,
Min_ItemListID = ListItem.Min(c=>c.ListID)
} into G_List
join i_photo in db.ItemPhotos on G_List.Key.Min_ItemListID equals i_photo.ItemID into ListItem2
// ]
// [ 2. GROUPBY
from ll_item in ListItem2.DefaultIfEmpty()
group ll_item by new {
G_List.Key.CategoryID,
G_List.Key.CreateDate,
G_List.Key.Header,
G_List.Key.Min_ItemListID,
Min_ItemPhoto_FileName = ListItem2.Min(c=>c.FileName)
} into GG_List
// ]
select new TList.General_ListViewModel
{
CategoryID = GG_List.Key.CategoryID,
CreateDate = GG_List.Key.CreateDate,
Header = GG_List.Key.Header,
FirstImageURL = GG_List.Key.Min_ItemPhoto_FileName
}
);
당신이 직접 쓰려고 시도해 본 다음에 붙어있을 때 도움을 요청하는 것이 좋을 것이다. – Nix
나는 이것을 위해 linq을 사용하지 말 것을 권한다. 대신 저장 프로 시저 또는 뷰를 작성하고 그 작업을 완료하십시오. – jeroenh
절대적으로 필요하지 않으면 다소 반대합니다. SP로 푸시하지 않을 것입니다. – Nix