Я работаю над созданием запроса linq, который обеспечивает одно минимальное значение. Тем не менее, я продолжаю получать неправильное минимальное значение. Я уверен, что это проблема присоединения, но я не могу заставить внешнее соединение работать. Я пробовал некоторые внешние соединения на основе других сообщений, но ничего не могу сделать. Я не уверен, какая таблица мне нужна для внешнего соединения, чтобы сделать эту работу. Кажется, я пробовал, я думаю, каждая комбинация могла.Запрос Linq не дает желаемых результатов
Вот запрос я начал с:
(from r in Results
join entry in Entries on r.EntryId equals entry.EntryId
join entryEvent in EntryEvents on entry.EntryId equals entryEvent.EntryId
join eswimmer in EntrySwimmers on entry.EntryId equals eswimmer.EntryId
where eswimmer.SwimmerId == 12027 && entryEvent.EventNumberId == 1233
select r.Time)
.Min();
внешнее соединение попытка:
from r in Results
join en in Entries on r.EntryId equals en.EntryId
join ev in EntryEvents on en.EntryId equals ev.EntryId into evJoined
join s in EntrySwimmers on en.EntryId equals s.EntryId into sJoined
from ev in evJoined.DefaultIfEmpty()
from s in sJoined.DefaultIfEmpty()
where (s.SwimmerId == 12027 && ev.EventNumberId == 1233)
select r.Time;
Вопрос заключается в том, что я получаю минимальное значение из всех результатов для пловца, а не минимальное значение для этого пловца И конкретное событие.
Класс структур выглядеть следующим образом:
Результаты
public int ResultId
public int EntryId
public ICollection<Entry> Entry
public int EntryEventId
public ICollection<EntryEvent> EntryEvent
public TimeSpan Time
Записи
public int EntryId
public ICollection<EntrySwimmer> EntrySwimmers
public Result Results
public ICollection<EntryEvent> EntryEvents
EntryEvents
public int EntryEventId
public int EventNumberId
public EventNumber EventNumbers
public int EntryId
public Entry Entry
EntrySwimmers
public int EntryId
public Entry Entries
public int SwimmerId
public Swimmer Swimmers
Я все еще изучаю linq, объединяет и т. Д., Поэтому объясняются. Заранее спасибо!
Сначала напишите рабочий запрос в T-SQL, а затем откройте его назад. – Nkosi
Я получаю те же результаты в SQL. – Wyatt
Правильно ли эта модель? 'Entry' имеет много' EntryEvents' * и * many 'EntrySwimmers'. Как вы собираетесь связать пловца с конкретным «EntryEvent»? –