У меня есть оператор SQL, который я пытаюсь преобразовать в LINQ to SQL, и мне удалось преобразовать большую его часть, но я столкнулся с одним оператором, который я не могу обернуть в LINQ. 1001 *
Раздел SQL-запроса, который вызывает головную боль:
SELECT *
FROM step
INNER JOIN action on
(step.NextAction = action.ID and step.ActionStatus != 4) or
(step.ACTION = action.ID and step.ActionStatus = 4)
step
- таблица, содержащая последовательность действий, action
- список доступных действий. ActionStatus
- это индекс в списке статусов - 4 == 'Failed'.
В основном, для действий, которые не Failed, необходимо вернуть следующее действие. Если действие имеет Failed, возвращается действие current .
Это только одно из объединений (в общем запросе всего 10 таблиц), большинство из них являются прямыми эквивалентами, некоторые в нескольких условиях, но я смог написать их в LINQ без вопрос. Хотя этот, я не вижу, как это будет написано.
Я видел этот ответ, но также не вижу, как применить это в этом сценарии. Есть идеи?