วันพฤหัสบดีที่ 24 เมษายน พ.ศ. 2557

การ Join ตาราง 3 ตาราง เปรียบเทียบ SQL,LINQ,Lambda โดยใช้ C#

ตัวอย่าง จะ Join ตาราง 3 ตาราง
ได้แก่   MANU_USER,MANU_DETAIL,MANU_ACTION


แบบที่ 1  SQL

Select u.MANU_USER,d.MANU_NAME,a.MANU_ACTNAME

from MANU_DETAIL d join MANU_USER u

on u.MANU_ID = d.MANU_ID

join MANU_ACTION a

on u.MANU_ACTID = a.MANU_ACTID




แบบที่ 2 LINQ 

using(var db = new MANUContext())
{
    var query = (
                        from d in db.MANU_DETAIL
                        join  u in db.MANU_USER
                           on  d.MANU_ID equals  u.MANU_ID
                        join  a in db.MANU_ACTION
                            on  d.MANU_ACTID equals a.MANU_ACTID
                        select new
                                   {
                                        u.MANU_USER,
                                        d.MANU_NAME,
                                        a.MANU_ACTNAME

                                    }
                         ).ToList();
}




แบบที่ 3 LAMPDA
       using(var db = new MANUContext()
      {
          var query = db.MANU_DETAIL.JOIN
                             (
                              db.MANU_USER, d => d.MANU_ID , u => u.MANU_ID,(d,u) => new
                                    {
                                          u.MANU_USER,
                                          d.MANU_ACTID,
                                          d.MANU_NAME
                                     }
                              )
                              .join
                              (
                              db.MANU_ACTION,o => o.MANU_ACTID , a => a.MANU_ACTID,(o,a) =new
                               {
                                          o.MANU_USER,
                                          o.MANU_NAME,
                                          a.MANU_ACTNAME
                               }
                               ).ToList();
           }

ไม่มีความคิดเห็น:

แสดงความคิดเห็น