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

走进Linq-Linq to SQL How do I(2)

作者: 横刀天笑  来源: 博客园  发布时间: 2008-09-23 19:02  阅读: 8538 次  推荐: 3   原文链接   [收藏]  

系列文章导航:

走进Linq--Linq横空出世篇

走进Linq-辉煌的背后

走进Linq-Linq大观园

不能不说的C#特性-对象集合初始化器

不能不说的C#特性-匿名类型与隐式类型局部变量

不能不说的C#特性-扩展方法

不能不说的C#特性-匿名方法和Lambda表达式

不能不说的C#特性-迭代器(上)及一些研究过程中的副产品

不能不说的C#特性-迭代器(下),yield以及流的延迟计算

走进Linq-Linq to Objects(上)基础篇

走进Linq-Linq to Objects(下)实例篇

走进Linq-Linq to SQL感性认识篇

走进Linq-Linq to SQL How do I(1)

走进Linq-Linq to SQL How do I(2)

走进Linq-Linq to SQL How do I(3)

走进Linq-How do I(4)拾遗补零篇第一节

走进Linq-Linq to SQL源代码赏析 Table的获取过程

走进Linq-Linq to SQL源代码赏析之Provider的初始化

走进Linq-Linq to SQL源代码赏析,通过Linq to SQL看Linq


多对多的关系

Linq to SQL默认是不支持多对多的关系的,所以也没有针对多对多关系的AttributeQuery,不过网上有很多多对多关系的解决方案,在这里我就不做介绍了,我给个连接:

http://blogs.msdn.com/mitsu/archive/2007/06/21/how-to-implement-a-many-to-many-relationship-using-linq-to-sql.aspx

这位大哥的方案是一个通用的,你可以下载他的代码应用到你的项目当中,有时间我会把这个翻译一下。

一对一的关系(one-to-one)

一对一的关系Linq to SQL是支持的,你只要给关系的两边都加上EntitySet属性就可以了,下面用实例做个演示:

在我们的实例中,每个用户对应着一个博客,每个博客也只对应着一个用户,这是个一对一的关系:

用户类映射(User)

Blog类前面已经出现过,我们就不列出全部代码,将Blog类修改如下:

[Column]
public int UserId { getset; }
[Association(ThisKey
="UserId",OtherKey="Id",IsUnique=true)]
public EntitySet<User> User { getset; }

就是添加一个EntitySet User的属性而已。

看看操作:

通过查询结果可以看出,他们之间的关系建立了。

后记

本来这一篇我准备了好几个内容,但是在上篇评论里,有人说我的一篇太长了,确实,如果太长了,没有多少人能有耐心看下去,而且看的时间太长对眼睛也不好,在办公室里也不好意思老顶着屏幕看博客吧,boss看了也不好啊,所以这篇就光说一个关联了,那看来这个How do I原计划的三篇是不能完成了。其实文章有点长,看起来应该很快,没有什么难度的内容,而且我是以讲话的风格写的,本系列的内容我的计划是把Linq讲的透透彻彻的,从表面上如何使用,到后面是怎么实现的都说一遍,所以每一篇都是整个系列的一个元组。

3
0
标签:LINQ LINQ to SQL

数据库热门文章

    数据库最新文章

      最新新闻

        热门新闻