Entity Framework Query предпочитает определенное значение поля, если не выбран первым или по умолчанию - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть таблица SQL Server с полями, как показано ниже

Table name: Dashboard
Fields: Id, OwnerId, DashboardName, CreatedDate

Как мне написать один запрос Entity Framework (не нужно дважды обращаться к базе данных), чтобы получить панель мониторинга, соответствующую данному OwnerIdа предпочтительное DashboardName?Если это DashboardName не совпадает, я хочу, чтобы Dashboard с самым ранним CreatedDate был возвращен.

Эквивалентный sql, для которого мне нужен EF QUERY, вероятно будет выглядеть как

 select *,  1 as preference from Dashboard OwnerId=1 and DashboardName = 
 'my dashboard'
 union 
 select *, 2 as preference from Dashboard where OwnerId=1 
 order by preference, CreatedDate 

1 Ответ

0 голосов
/ 26 ноября 2018

Вы можете использовать троичный условный оператор в LINQ / EF.

var dashboard = (from d in db.Dashboard
                 where d.OwnerId == 1
                 select new { d, pref = (d.DashboardName == "my dashboard") ? 1 : 2 }
                 orderby pref, d.CreatedDate
                ).FirstOrDefault().d;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...