LinqToSql фильтрует и упорядочивает по синтаксису
-
03-07-2019 - |
Вопрос
Мои братья-технари (и Сестры, конечно же!),
У меня есть модель данных LinqToSql, которая содержит следующие объекты:модель данных http://danimal.acsysinteractive.com/images/advisor.jpg
Мне нужно получить всех консультантов для определенного офиса, упорядоченных по их последовательности внутри офиса.У меня есть первая часть, работающая с объединением:
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;
}
Однако, похоже, я не могу охватить своим усталым мозгом предложение order by .Кто-нибудь может дать какие-то предложения?
Решение
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, но должно сработать.
Вы можете добавить предложение order by следующим образом:
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;
Не связан с StackOverflow