Как я могу преобразовать следующий оператор SQL в оператор LinqToSQL?
select field, 1 as ordering from table where field2 = condition1
union all
select field, 7 as ordering from table where field2 = condition2
union all
select field, 3 as ordering from table where field2 = condition3
union all
select field, 2 as ordering from table where field2 = condition4
order by ordering
По сути, я просто присоединяюсь к паре запросов и упорядочиваю результирующий набор на основе происхождения строки.
Я могу управлять объединением, как показано ниже, но я не могу заставить LinqToSQL упорядочить весь набор результатов, я могу получить его только для упорядочения каждого отдельного запроса.
from t in table
where
condition
select new { field, ordering = 1 }
).Union
(
from t2 in table2
where
condition
select new { field ordering = 7 }
).Union
(
from t3 in table3
where
condition
select new { field ordering = 3 }
).Union
(
from t4 in table4
where
condition
select new { field ordering = 2 }
);