asp中LINQ查询中join和Joined的区别是什么?. NET MVC 4框架



我有两个数据表称为A和B,我需要所有行从A和B的匹配行

A:                                           B:
User | age| Data                            ID  | age|Growth                                
1    |2   |43.5                             1   |2   |46.5
2    |3   |44.5                             1   |5   |49.5
3    |4   |45.6                             1   |6   |48.5

输出将是

User | age| Data |Growth
------------------------                           
1    |2   |43.5  |46.5                           
2    |3   |44.5  |                          
3    |4   |45.6  |

在这种情况下,我从StackOverflow.com得到了一个解决方案Link

var results = from data in userData
              join growth in userGrowth
              on data.User equals growth.User into joined
              from j in joined.DefaultIfEmpty()
              select new 
              {
                  UserData = data,
                  UserGrowth = j
              };

它工作得很好,但是我有点困惑,在这个LINQ Queryjoinjoined的区别是什么。谢谢你。

joinedjoingroup by操作结果的变量名。只是为了能够在from子句中使用它。

MSDN:

into上下文关键字可用于创建临时标识符,用于将组、连接或选择子句的结果存储到其中一个新的标识符。此标识符本身可以是的生成器附加查询命令。在组或选择子句中使用时,新标识符的使用有时被称为延续。

在您的示例中,joined标识符用于执行LEFT JOIN。通过检查join(存储在joined中)的结果是否为空,那么j将是null,并且该记录将不会被跳过(如INNER JOIN)。

joined只是结果集合的变量名。您可以看到它是在以into joined结尾的行中创建的。然后在下一行使用

相关内容

  • 没有找到相关文章

最新更新