Linq SELECT AS and CONCAT

本文关键字:CONCAT and AS SELECT Linq | 更新日期: 2023-09-27 18:34:41

我得到了一个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

非常感谢

Linq SELECT AS and CONCAT

SELECT AS 表示为:

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

CONCAT是:

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)) 
        };