我可以帮助将sql中的内连接转换为linq吗?

时间:2011-05-31 13:36:40

标签: linq-to-sql

我想使用链式linq。我在语法方面遇到了一些麻烦。

select * from APPLES
inner join BANANAS on APPLES.id = BANANAS.someid

我有:

var result = workspace.GetDataSource<APPLE>().Join(.......)

但我不确定加入位的内容。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

怎么样:

var result = from a in workspace.GetDataSource<APPLE>()
             from b in workspace.GetDataSource<BANANAS>()
             where a.id == b.someid
             select a;

或者如果您想使用连接表示法:

var result = from a in workspace.GetDataSource<APPLE>()
             join b in workspace.GetDataSource<BANANAS>()
             on a.id equals b.someid
             select a;

注意,您可以将选择a更改为两个表中所需元素的投影。

不熟悉这种格式,但它会是这样的:

var result = workspace.GetDataSource<APPLE>().Join(workspace.GetDataSource<BANANAS>(),a=>a.id, b=>b.someid,(a,b) => a);