У меня возникли проблемы при переносе этого SQL SP в оператор linq. sql logi c - это базовая c, чтобы получить минимальную и максимальную дату начала, и если они равны, используйте значение минимальной даты для даты встречи. MeetingDate - это строка, поэтому я бы набросил ее MM / dd / yyyy. Если они не равны, объедините вместе min StartDate и max StartDate.
LINQ
var Meeting = (from m in db.Meetings
join md in db.MeetingDates on m.MeetingId equals md.MeetingId
join mf in db.MeetingFiles on m.MeetingId equals mf.MeetingId
join fm in db.FileManagers on mf.FileManagerId equals fm.FileManagerId
join vwGP in db.vwGuidelinePanels on m.GroupId equals vwGP.GroupId
where mf.FileCategoryItemDictionaryId == 755
select new Model.Meeting
{
MeetingId = m.MeetingId,
GroupId = m.GroupId,
MeetingDate = max(md.StartDate) == min(md.StartDate)? min(md.StartDate)
min(md.StartDate) + ' - ' + max(md.StartDate)
}).ToList();
SQL
case
when Convert(varchar(10),min(md.StartDate),101)=Convert(varchar(10),max(md.StartDate),101)
then Convert(varchar(10),min(md.StartDate),101)
else
Convert(varchar(10),min(md.StartDate),101)+' - '+Convert(varchar(10),max(md.StartDate),101) end
output
04/15/2010
05/06/2010
05/12/2010
06/13/2010 - 06/16/2010
06/16/2010 - 06/19/2010
с использованием max и min возникает ошибка времени выполнения
введите описание изображения здесь