0

エンティティ フレームワークでクエリを実行する必要がありますが、機能していません。結合、左フォントおよびまたは条件を使用しています。この方法でやろうとしましたが、うまくいきません。Sqlserverでクエリを実行すると2行が返されますが、エンティティフレームワークでは0行が返されます

The query is :
SELECT *
FROM   DATABASE..PENDS P
       INNER JOIN DATABASE..VIEWERS V
               ON P.TIPO = V.TIPO
       LEFT JOIN DATABASE..GROUP G
              ON V.GRUPO = G.ID
       INNER JOIN DATABASE..AUTH A
               ON (A.AUT_LOGIN = V.USUARIO OR A.GRUPO = G.ID)
WHERE  A.AUT_LOGIN = 'userlogin' 

I tryed to do this way:

var pendsc = (from p in _context.Pends
                              join v in _context.Viewers on new
                              {

                                  p.Tipo
                              }
                              equals new
                              {
                                        v.Tipo
                              }
                              join g in _context.Group on new
                              {
                                               Grupo = v.Grupo
                              }
                              equals new
                              {

                                  Grupo = g.Id

                              }
                              from a in _context.Auth
                              where (a.Login == v.Usuario || a.Grupo == g.Id)
                              where a.Login == "userlogin"
                              select p).ToList();
4

1 に答える 1

0

左結合の場合は、DefaultIfEmpty で into 句を使用する必要があります

var pendsc = (from p in _context.Pends
                              join v in _context.Viewers on
                             p.Tipo equals v.Tipo

                              join g in _context.Group on v.Grupo
                                                            equals g.Id into TippoGroup

                              from Obj in TippoGroup.DefaultIfEmpty()
                              join
                              a in _context.Auth
                              where (a.Login == v.Usuario || a.Grupo == g.Id)
                              where a.Login == "userlogin"
                              select p).ToList();
于 2013-10-17T12:26:10.543 に答える