linq to sql使用lambda连接多个列

spd*_*dro 24 c# sql linq lambda

有人可以帮我解释一下

var query = from s in context.ShoppingMalls
join h in context.Houses
on
new { s.CouncilCode, s.PostCode }
equals
 new { h.CouncilCode, h.PostCode }
select s;
Run Code Online (Sandbox Code Playgroud)

进入lambda查询?

谢谢.

Tho*_*que 46

var query = context.ShoppingMalls
                   .Join(
                       context.Houses,
                       s => new { s.CouncilCode, s.PostCode },
                       h => new { h.CouncilCode, h.PostCode },
                       (s, h) => s);
Run Code Online (Sandbox Code Playgroud)

  • 我不知道您的编辑去了哪里,但是如果名称和类型不相同,则可以对两个对象的连接都执行类似的操作,以使属性名称匹配:new {cc = s.CouncilCode,pc = s.PostCode} (2认同)

小智 6

尽管@Thomas Levesque给出的示例和答案适用于匹配的列,但如果您有要连接的列但名称不同,我也想提供答案。这是我进行谷歌搜索所需要的,这个问题使我很接近。

当然,区别在于将列显式声明为要识别的变量。

var query = context.MapKitsToResources
              .Join(
                     context.Resources, 
                     o => new { Id = o.ResourceId, Type = o.ResourceTypeId},
                     i => new { Id = i.Id, Type = TypeId},
                     (o, i) = new { rType : i };
Run Code Online (Sandbox Code Playgroud)