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

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

作者: Tom Song  来源: 博客园  发布时间: 2008-09-27 11:46  阅读: 26238 次  推荐: 3   原文链接   [收藏]  

系列文章导航:

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在某些细节上的差别


 

现在linq分三个部分。Linq To Objects,即以前的linq。其主要是针对CLR-Based Objects的查询。即内存操作。Linq Enabled ADO.NET是针对关系型数据的。这又包含三个部分。Linq To Datasets, Linq To Sql, Linq To Entities. 其中Linq To Sql 是大家所熟悉的部分,即以前的Dlinq. 官方的解释是,Linq To Datasets, support for ADO.NET Datasets; Linq to SQL, support for SQL Server; Linq to Entities, Support fro Entity Data Model. 记得,以前曾有人问及dlinq与ADO.NET Orcas的关系,因为它们隶属于不同的队伍开发,其中有重叠的部分。而现在,其功能归结在一起,其重叠部分已经得到融合。(如果有人是ADO.NET team或熟悉这个的,开辟专栏给我们大家讲一下呀。)最后一部分叫Linq To XML,即以前的Xlinq. 针对xml格式数据的操作。(还有针对ASP.NET的Blinq, 大声问一下,有没有人懂这个呀)

DBML
所谓dbml,即Database Mark Language。数据库描述语言,是一种xml格式的文档,用来描述数据库。上面我们讲了,不是用类来描述数据吗?为什么又有个dbml?是的,dbml只是个中间的产物,其出现的主要原因是,适应c# 和vb.net语言的不同,做中间缓冲。dbml及数据库和code关系如下。
Database ----> DBML ------------> Code.
使用sqlmetal可以产生dbml。键入如下命令:
sqlmetal /server:yourserver /database:northwind /dbml:YourDbml.dbml
最终可以得到dbml文件,如下:

 

也可以使用该dbml生成code,命令如下,可以用language选项,控制生成vb.net或c#语言的代码。
sqlmetal YourDbml.dbml /code: nwind.cs

在C#3.0入门系列(七)--之OR工具介绍 一文中,我们介绍了OR Designer工具,它生成的就是dbml,可以使用记事本打开DataClasses1.dbml 文件来看。有些属性,是无法从数据库中抽提出来的,比如继承,等。而我们又想对其映射做继承,就需要我们自己手工去修改dbml。好在OR Designer提供这些功能(以后再介绍)。

3
0
 

数据库热门文章

    数据库最新文章

      最新新闻

        热门新闻