如何使用LINQ to SQL和C#进行正确的连接

fra*_*ron 5 c# sql linq

嘿伙计们,我在使用LINQ和C#创建以下SQL语句时遇到问题#

    select c.IDAddenda, c.Descripcion
      from CatAddendas c 
right join EmpresaAddenda e on e.IDAddenda = c.IDAddenda
     where e.rfc = 'SUL010720JN8'
  order by c.IDAddenda asc
Run Code Online (Sandbox Code Playgroud)

我懂了

public IEnumerable<CatAddenda> TraeAddendas(string rfc)
{
    DataClasses1DataContext dc = new DataClasses1DataContext(...);

    return (from adds in dc.EmpresaAddendas
            cats.IDAddenda    into joined 
            where adds.RFC == rfc
            select adds.CatAddenda);
}
Run Code Online (Sandbox Code Playgroud)

这不是正确的加入,所以任何想法?

ion*_*den 10

 var RightJoin = from adds in dc.EmpresaAddendas
                 join cats in CatAddendas 
                     on adds.IDAddenda equals cats.IDAddenda into joined
                 from cats in joined.DefaultIfEmpty()
                 select new
                 {
                     Id = cats.IDAddenda,
                     Description = cats.Descripcion 
                 };
Run Code Online (Sandbox Code Playgroud)

  • 这是左外连接 (2认同)

Dog*_*uca 5

var results = from e in EmpresaAddenda
              join c in CatAddendas
              on e.IDAddenda equals c.IDAddenda into f
              from c in f.DefaultIfEmpty()
              select new
              {
                   ID = c.IDAddenda,
                   Description = c.Descripcion 
              };
Run Code Online (Sandbox Code Playgroud)

您可以在结果上应用 where 和 order by。