locked
How to convert this SQL to LINQ? RRS feed

  • Question

  • User-1651604128 posted

    Here is the SQL codes:

    SELECT tbl_PLAIN_LANGUAGE_ADDRESS.PLA_ID, tbl_Department_PLA.DEPARTMENT_ID, tbl_PLAIN_LANGUAGE_ADDRESS.PLA_NAME, 
    tbl_Department.DND_ID, tbl_Department.SECTION_ID 
    FROM (tbl_Department_PLA RIGHT JOIN tbl_PLAIN_LANGUAGE_ADDRESS ON tbl_Department_PLA.PLA_ID = tbl_PLAIN_LANGUAGE_ADDRESS.PLA_ID) LEFT JOIN tbl_Department ON tbl_Department_PLA.DEPARTMENT_ID = 
    tbl_Department.DEPARTMENT_ID ORDER BY tbl_PLAIN_LANGUAGE_ADDRESS.PLA_NAME, tbl_Department.D_ID
    

    I need to convert it to LINQ, I appreciate any help

    Monday, June 18, 2018 4:46 PM

All replies

  • User-1651604128 posted

    Any help would be appreciated!

    Monday, June 18, 2018 11:25 PM
  • User1520731567 posted

    Hi Peter Cong,

    Since I don't have your ef model, l make a demo in my project, you could refer to it:

             var list= (
                                       from rightJoinTable in
                                        (from Table2 in db.Table2 
                                        join Table1 in db.Table1 
                                        on Table2.Id equals Table1.Id into rightJoin
                                        from rj in rightJoin.DefaultIfEmpty()
                                         select new
                                         {
                                             CID = rj.Id,//data from Table1
                                             AID = Table2.Id,//data from Table2
                                             NAME = Table2.Name,
                                             SIZE = rj.size
                                         }
                                        )
                                       join Table3 in db.Table3 
            
                                       on rightJoinTable.AID equals Table3.Id into leftjoin
                                       orderby rightJoinTable.NAME, leftjoin.GroupBy(p=>p.Id) //data from table2 and data3
    
                                       from lj in leftjoin.DefaultIfEmpty()
                                       select new
                                       {
                                           CID = lj.Id,//data from Table3
                                           AID = rightJoinTable.AID, //data from Table2
                                           SIZE = rightJoinTable.SIZE //data from Table1
                                       }
                                      
                                       ).ToList();

    if it doesn't work, please give me more details, such as: entities of your three tables.

    Best Regards.

    Yuki Tao

    Wednesday, June 20, 2018 9:17 AM