Linq ВЫБЕРИ КАК и КОНКАТ

Мне дали SQL-запрос, который мне нужно перевести в LINQ, это не проблема, но есть несколько пунктов, с которыми мне нужно помочь в этом конкретном запросе, и это выбор имени столбца как '', а также конкатенация. Вот вопрос в вопросе:

SELECT vessel_idx, 
       vessel_name, 
       spotlist_dp, 
       spotlist_bhp,
       spotlist_deck, 
       spotlist_bp, 
       spotlist_oilrec, 
       spotlist_fifi, 
       spotlist_rov,
       '' AS fixture_charterer,
       '' AS fixture_work,
CONCAT( fixture_charterer ,
        ' ', 
        mid(fixture_start,9,2),
        '/',
        mid(fixture_start,6,2)) AS next_charterer_info, 
        '' AS fixture_location,
        '0000-00-00 00:00:00' AS  fixture_stop, 
        '' AS fixture_note 
FROM tbl_vessels

WHERE vessel_type='AHTS'

AND current_location_spotlist_id = 2
AND fixture_start > '2016-02-12 08:30:00'
AND vessel_status = 'PPT'

ORDER BY fixture_stop

Обычные вещи, такие как AND, WHERE и т. Д., С которыми я могу иметь дело, это только те разделы, с которыми я борюсь. Выбор столбца как '':

SELECT '' AS fixture_charterer,
       '' AS fixture_work,

и конкатенация

CONCAT( fixture_charterer ,
        ' ', 
        mid(fixture_start,9,2),
        '/',
        mid(fixture_start,6,2)) AS next_charterer_info, 
        '' AS fixture_location,
        '0000-00-00 00:00:00' AS  fixture_stop, 
        '' AS fixture_note

Большое спасибо

2 ответа

SELECT AS представлен как:

var demo = from vessel in db.tbl_vessels
         select new {
           fixture_charterer = "", 
           fixture_work = ""
         };

КОНКАТ это:

var demo = from vessel in db.tbl_vessels
         select new {
           fixture_note = fixture_charterer + " " + next_charterer_info 
         };

Вы можете выбрать такие константы, как "" без труда:

var q = from v in ....
        ....
        select new 
        {
           ...,
           fixture_charterer = "",
           fixture_work = "",
           next_charterer_info = 
               (v.fixture_charterer ?? "") + " " 
             + (v.fixture_start == null ? "" : v.fixture_start.Substring(8,2)) 
        };
Другие вопросы по тегам