안녕하세요 다른 레코드를 가져 오기 위해 아래 쿼리를 시도했지만 아래 쿼리에서 고유 레코드를 가져올 수 없습니다.linq 쿼리에서 고유 레코드를 얻는 방법
var query = (from sr in db.StudentRequests
join r in db.Registrations on sr.RegistrationId equals r.RegistrationId
join cc in db.Campus on r.CampusId equals cc.CampusId
join c in db.Classes on sr.ClassId equals c.ClassId
from tc in db.TutorClasses.Where(t => t.ClassId == sr.ClassId).DefaultIfEmpty()
from srt in db.StudentRequestTimings.Where(s => s.StudentRequestId == sr.StudentRequestId).DefaultIfEmpty()
from tsr in db.TutorStudentRequests.Where(t => t.StudentRequestId == srt.StudentRequestId && t.TutorId == registrationid).DefaultIfEmpty()
where tc.RegistrationId == registrationid
select new
{
StudentRequestId = sr.StudentRequestId,
RegistrationId = sr.RegistrationId,
Location = sr.Location,
PaymentMethod = sr.PaymentMethod,
CreatedOn = sr.CreatedOn,
ClassName = c.ClassName,
CampusName = cc.CampusName,
StatusId = tsr.StatusId == null ? 1 : tsr.StatusId,
Time = db.StudentRequestTimings.Where(p => p.StudentRequestId == sr.StudentRequestId)
.Select(p => p.FromTime.ToString().Replace("AM", "").Replace("PM", "") + "-" + p.ToTime)
}).Distinct().ToList().ToPagedList(page ?? 1, 3);
하지만
'고유'작업으로 오류가 발생하고 지정된 인수의 수집 ResultType에 적용 할 수 없습니다 \ 연구 \ nParameter 이름 :. 인수
그래서 위의 쿼리에서 .Distinct()를 제거했고 그 코드 아래에 코드를 작성했습니다.
query = query.Distinct().ToList();
하지만 여전히 중복 기록은
그래서 나는 별개의 기록을 얻기 위해 GROUP BY 절을 시도했지만 거기 또한 내가 코드 아래 issue.Please 검토에 직면하고 보여주는데
query = query.ToList().GroupBy(x => new { x.StudentRequestId, x.StatusId, x.Location, x.RegistrationId, x.PaymentMethod, x.CreatedOn, x.ClassName, x.CampusName})
.Select(group => new
{
StudentRequestId = group.Key.StudentRequestId,
StatusId = group.Key.StatusId,
Location = group.Key.Location,
RegistrationId = group.Key.RegistrationId,
PaymentMethod = group.Key.PaymentMethod,
CreatedOn = group.Key.CreatedOn,
ClassName = group.Key.ClassName,
CampusName = group.Key.CampusName,
Time1 = group.Key.Time
});
로 시간에 대한 오류를 얻고있다
어떻게 별개의 가치를 얻을 수 있습니까? 나는 모든 것이 잘 작동되는 열을 제거하면 또한, 내가 쿼리
실제 문제는 시간 열에서 오는에 ToPagedList을 사용하고 있다는 우려에서 확인하십시오.
... GROUPBY()를 선택 (g => g.First()) .ToList().; –
@ Rajaji는 나를 위해 일해 주셔서 감사합니다. – Xtremcool