首页 新闻 会员 周边 捐助

linq into语句

0
悬赏园豆:5 [已解决问题] 解决于 2014-03-06 22:49

var query = from c in customers

join o in orders on c.CustomerId equals o.CustomerId into os

select new { c, os };

foreach (var item in query)

{

    Console.WriteLine("Customer Id:{0}, Name:{1}",

      item.c.CustomerId,    item.c.Name);

    foreach (var o in item.os)

   {

         Console.WriteLine("--Order Id:{0}", o.OrderId);

    }

}

我想知道 os现在是什么数据了

如果用t-sql应是customers 和orders 两个表的数

但实际上好像又只是orders这个表的数据,有点乱了,帮指点下

这个例 子是

http://www.cnblogs.com/c-jquery-linq-sql-net-problem/archive/2011/01/17/LINQ_Inner_Join_Group_Join_Left_Join.html#printSource

这里面的

生活还是要继续的主页 生活还是要继续 | 初学一级 | 园豆:10
提问于:2014-01-19 23:19
< >
分享
最佳答案
0

这是个左外连接查询,query 是连接查询整个结果集,os只是orders表中满足条件的数据。

相当于sql语句:

select c.*,o.* from customers c left join orders o on c.CustomerId =o.CustomerId 

收获园豆:3
时光与树 | 初学一级 |园豆:184 | 2014-01-23 17:04

group by into 得到的是分组后的数据

left join o in order c.customer.id equal order.id into os

按理解应该是 c.*,o.*

生活还是要继续 | 园豆:10 (初学一级) | 2014-03-06 22:49
其他回答(3)
0

全量的结果集。query.c表示customer表的数据,query.os 表示orders表的数据。

收获园豆:2
幻天芒 | 园豆:37205 (高人七级) | 2014-01-19 23:39
0

sql的本质和实体框架等的理念是冲突的.

因此实体框架不可能取代sql:如果取代,那么他应该以sql为本.但理念有不一致.

[秦时明月] | 园豆:738 (小虾三级) | 2014-01-20 11:47
0

实际上应该是两个表的数据,楼主运行出来时什么数据?

YoMe | 园豆:545 (小虾三级) | 2014-01-21 09:31

运行实际就是Order的数据

不理解这点

支持(0) 反对(0) 生活还是要继续 | 园豆:10 (初学一级) | 2014-03-06 22:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册