고유 한 값으로 그룹화 한 다음 남은 부분의 최대 또는 최소를 가져올 수 있습니다.
ctx.ResourceMetas
.GroupBy(x=>new{x.ResourceId, x.MetaDataId})
.Select
(
x=>new
{
MetaListId = x.Min(m=>m.MetaListId),
ResourceId = x.Key.ResourceId,
MetaDataId = x.Key.MetaDataId
}
)
.Where(a => a.ResourceId == resourceid)
을하지만 시나리오에서 당신은 당신이 가진 것 이상의 세 가지 중 2 개 필드의 고유 한 값을 싶습니다 : 하나만 더 필드가 귀하의 경우에는
당신은 그것을 좋아 할 수있는 그것을 좋아하는 것 :
ctx.ResourceMetas
.GroupBy(x=>new{x.ResourceId, x.MetaDataId})
.Select
(
x=>new
{
MetaListId = x.Where(i=>i.MetaListId == x.Min(m=>m.MetaListId)).FirstOrDefault().MetaListId ,
OtherField = x.Where(i=>i.MetaListId == x.Min(m=>m.MetaListId)).FirstOrDefault().OtherField ,
ResourceId = x.Key.ResourceId,
MetaDataId = x.Key.MetaDataId
}
)
.Where(a => a.ResourceId == resourceid)
아마 내가 resourceId 만 가지고 있다고 덧붙여 야합니다. –
이것은 효과가 있습니다! 고마워요! :) –