문제

내 기술자 Bretheren (물론 자매!),

다음 엔티티가있는 LinqToSQL 데이터 모델이 있습니다.데이터 모델 http://danimal.acsysinteractive.com/images/advisor.jpg

사무실 내에서 순서대로 주문한 특정 사무실의 모든 고문을 검색해야합니다. 나는 첫 번째 부분이 Join과 함께 작업했습니다.

public static List<Advisor>GetOfficeEmployees(int OfficeID)
{
    List<Advisor> lstAdvisors = null;
    using (AdvisorDataModelDataContext _context = new AdvisorDataModelDataContext())
    {
        var advisors = from adv in _context.Advisors
                       join advisoroffice in _context.OfficeAdvisors
                           on adv.AdvisorId equals advisoroffice.AdvisorId
                       where advisoroffice.OfficeId == OfficeID
                       select adv;

        lstAdvisors = advisors.ToList();

    }
    return lstAdvisors;
}

그러나 나는 절차에 의한 질서에 대한 지친 뇌를 절단에 의해 포장 할 수없는 것 같다. 누구든지 제안을 할 수 있습니까?

도움이 되었습니까?

해결책

from adv in _context.Advisors
where adv.OfficeAdvisor.Any(off => off.OfficeId == officeID)
order adv by adv.OfficeAdvisor.First(off => off.OfficeId = officeID).Sequence
select adv;

다른 팁

public static List<Advisor>GetOfficeEmployees(int OfficeID)
{
    List<Advisor> lstAdvisors = null;
    using (AdvisorDataModelDataContext _context = new AdvisorDataModelDataContext())
    {
        var advisors = from adv in _context.Advisors
                       join advisoroffice in _context.OfficeAdvisors
                           on adv.AdvisorId equals advisoroffice.AdvisorId
                       where advisoroffice.OfficeId == OfficeID
                       group adv by adv.OfficeId into g
                       order by g.Sequence
                       select g;

        lstAdvisors = advisors.ToList();

    }
    return lstAdvisors;
}

메모: 현재 Visual Studio에서 이것을 테스트 할 수는 없지만 작동해야합니다.

다음과 같은 절로 주문을 추가 할 수 있습니다.

var advisors = from adv in _context.Advisors
                  join advisoroffice in _context.OfficeAdvisors
               on adv.AdvisorId equals advisoroffice.AdvisorId
               where advisoroffice.OfficeId == OfficeID
               orderby advisoroffice.Sequence //  < -----
               select adv;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top