EFCore使用lambda进行多表连接(join)并匹配多个条件

var res = DbSet<A>().join(DbSet<B>(),A=>new {A.Id,A.Name},B=>new {B.Id,B.Name},(A,B)=>new {A,B};
//或者
var res = DbSet<A>().join(DbSet<B>(),A=>new { Id = A.Id, Name = A.Name},B=>new {Id =  B.UserId, Name = B.UserName},(A,B)=>new {A,B};

注意:1、匿名类(连接条件)中的参数顺序必须一致,即 A.Id,A.Name 和 B.Id,B.Name

var res = DbSet<A>().join(DbSet<B>(),A=>new {A.Name,A.Id},B=>new {B.Id,B.Name},(A,B)=>new {A,B};

这样是不行的。A.Name,A.Id 和 B.Id,B.Name

posted @ 2020-12-25 18:30  三寸月光  阅读(4750)  评论(0编辑  收藏  举报