如何实现.Join()?

时间:2011-03-08 20:36:10

标签: linq-to-sql join

任何人都可以帮我学习如何实现.Join()吗?我之前从未使用.Join()(只有常规的'join'),并且想学习如何使用。谢谢!

    IQueryable<MyClass> query = 
      from t in table
      select new MyClass() { t.id, t.name };

   IQueryable<MyClass2> ids = 
      from t2 in table2
      select t2.id; // integers

    query.Join(ids, ___, ___, ___)

这不起作用......

query.Join(ids, o => o.id, p => p, (o, p) => (o.id == p));

1 个答案:

答案 0 :(得分:0)

你很亲密。看起来您希望Join的最后一个参数成为连接条件。这是不正确的(Join方法假定等于。)

最后一个参数是选择连接的结果:

var result = query.Join(ids, q => q.id, i => i, (q, i) => new { q , i });

Enumerable.Join()的MSDN页面实际上在页面底部有一个很好的例子。我建议检查一下,以便更好地了解发生了什么:

MSDN - Enumerable.Join() Method