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

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

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

系列文章导航:

走进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


Association

这个特性是用来建立实体之间关系的。在前面的例子里我们看到了:

/// <summary>
/// 一个博客有零篇或多篇文章,
/// </summary>
[Association(ThisKey="Id",OtherKey = "BlogId")]
public EntitySet<Post> Posts { get; set; }

Association有两个最重要的属性就是ThisKey和OtherKey

ThisKey用来标识和别的对象关联的键,如果没有指明就用本类属性上标识有IsPrimaryKey的了。OtherKey用来定义关联的类的键,如果没有指定就用关联的那个类的标识列了。

Association特性也是从Data特性继承来的,也有Name和Storage属性。Storage属性和Column是一样的,这里的Name属性是CreateDataBase利用映射类动态创建数据库的时候建立关系用的,这个Name就是关系名。关于Association的更多信息你还是参看上一篇文章。

我们用的最多的就是上面三个Attribute了,不过Linq to SQL还提供好几个Attribute,我想这个放在后面相应的地方再做介绍。

XML文件的配置方式

有心的你也许发现了,DataContext类有好几个重载的构造函数,我们常用的是:

DataContext(string fileOrConnectionString)

还有一个:

DataContext(string fileOrConnectionString,MappingSource mapping)

这个MappingSource是干吗的呢?

在System.Data.Linq.Mapping命名空间下,你会发现这样的个关系:

看到它的两个子类的名称你也许就会猜出十之八九了吧,我们前面所使用的就是AttributeMappingSouce映射,除此之外还可以使用XML作为映射的配置文件哦,从上面的图看,XmlMappingSource还有几个静态的方法,他们可以以各种形式的Xml数据源来构建XmlMappingSource实例:

XmlMappingSource mapping = XmlMappingSource.FromXml(File.ReadAllText(@“e:"cnblogs"map.xml”)); DataContext dbContext = new DataContext(connectionString,mapping);

用这种方式构建DataContext对象我们就可以使用Xml作映射了。

0
0
标签:linq objects

数据库热门文章

    数据库最新文章

      最新新闻

        热门新闻