如何在LINQ中执行多个联接

本文关键字:执行 LINQ | 更新日期: 2023-09-27 18:20:17

我有一个存储过程正在转换为LINQ,但我有点卡住了。这是SQL:

    select 
      @name                             = tp.Name
,     @Entity                           = tc.Entity
,     @Name                             = tc.Name
,     @ID                               =  tpt.ID
,     @Code                             =  tptr.Code  
    from tbltprop tp 
    Left join tblcol tc                                on ( tc.id = tp.ID )
    Left join tblPropday  tpt               on ( tpt.Id = tp.Id )
    Left join tblProperResult tptr   on (tptr.ID = tpt.Id )
    where tp.id               = @chsarpID1 //input ID i get in c#
    and     tpt.Id = @chsarpID2

我知道如何进行单联接,但在进行多联接时遇到了一些困难。怎么办?

如何在LINQ中执行多个联接

这可能会对您有所帮助。。。。。。。

var values= from tp in tbltprop
            join tb in tblcol ON tp.id equals tb.id into gj
            from gjd in gj.DefaultIfEmpty()
            join tpt in tblPropday ON tp.id equals tpt.id into gk
            from gkd in gk.DefaultIfEmpty()
            join tptr in tblProperResult ON tp.id equals tptr.id into gl
            from gld in gl.DefaultIfEmpty()
            where tp.id == @charpID1 && gkd.Id == @CharpID2
            select new 
                   { 
                       TpName = tp.Name, 
                       Entity = gjd.Entity, 
                       TPTName = gjd.Name, 
                       ID = gkd.ID, 
                       Code = gld.Code
                   };