您的位置:知识库 » 数据库

Linq To Sql进阶系列(二)M:M关系

作者: Tom Song  来源: 博客园  发布时间: 2008-09-27 11:49  阅读: 25648 次  推荐: 0   原文链接   [收藏]  
[1] Linq To Sql进阶系列(二)M:M关系
[2] Linq To Sql进阶系列(二)M:M关系
[3] Linq To Sql进阶系列(二)M:M关系

系列文章导航:

Linq To Sql进阶系列(一)从映射讲起

Linq To Sql进阶系列(二)M:M关系

Linq To Sql进阶系列(三)CUD和Log

Linq To Sql进阶系列(四)User Define Function篇

Linq To Sql进阶系列(五)Store Procedure篇

Linq To Sql进阶系列(六)用object的动态查询与保存log篇

Linq To Sql进阶系列(七)动态查询续及CLR与SQL在某些细节上的差别



为了不破坏数据库的映射,我们把这部分改动放到partial  class中。这样,我们渴望实现user.Group。
我们来做个测试,看看是不是成功了呢。

太好了。这正是我们想要的。那再来做个反面的测试吧。

        var q = (from u in db.Users
                  
from g in u.Groups
                  
select new { u.UserName, g.GroupName }).ToList();

编译通过,在run-time时,出错。因为,Linq To Sql不知道该怎么去找这个关系。那么下面这个呢?

        var q2 = (from u1 in (from u in db.Users
                  
select u).ToList()
                  
from g in u1.Groups
                  
select new { u1.UserName, g.GroupName }).ToList();

run-time没有问题。纠起原因,其在里面已经取回了数据,是Linq To Object的范畴了。

还可以使用下面的这个映射code。

结合我们的测试例子,请大家仔细比较他们的区别哦。前面那个是一次性取出了。后面这个是用那个取那个。

0
0

数据库热门文章

    数据库最新文章

      最新新闻

        热门新闻