(LINQ 学习系列)(1)使用 LINQ to SQL 的典型步骤

本文介绍 LINQ to SQL 的基本概念及其在 .NET Framework 3.5 中的应用,包括如何创建对象模型、使用 LINQ 查询数据库及处理并发冲突等内容。

本文作为学习LINQ的基础,全部内容来源于MS LINQ的学习资料整理

LINQ to SQL .NET Framework 3.5 版的一个组件,提供了用于将关系数据作为对象管理的运行时基础结构。

语言集成查询 (LINQ) Visual Studio 2008 .NET Framework 3.5 版中引入的一项创新功能,它在对象领域和数据领域之间架起了一座桥梁。

传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查或 IntelliSense 支持。此外,您还必须针对以下各种数据源学习一种不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等等。LINQ 使查询成为 C# Visual Basic 中的一流语言构造。您可以使用语言关键字和熟悉的运算符针对强类型化对象集合编写查询。 

 

使用 LINQ to SQL 的典型步骤

创建对象模型

第一步是用现有关系数据库的元数据创建对象模型。对象模型按照开发人员所用的编程语言来表示数据库。

1.选择用于创建模型的工具。

有三种工具可用于创建模型。

  • 对象关系设计器。

此设计器提供了用于从现有数据库创建对象模型的丰富用户界面。此工具是 Visual Studio IDE 的一部分,最适合小型或中型数据库。 

·         SQLMetal 代码生成工具

此命令行实用工具提供了与 O/R 设计器略微不同的一组选项。最好使用此工具对大型数据库进行建模。

例如我的数据库是Sqlserver 2008 ,库名为lxPower 

 

生成一个包含提取的 SQL 元数据的 .dbml 文件:

sqlmetal /server:localhost /database:yourdatabase /user:sa /password:XXX /dbml:mymeta.dbml

 

直接基于 SQL 元数据生成源代码:

sqlmetal /server:localhost  /database: yourdatabase /namespace:meetweb /code:d:/linqtest.cs /language:csharp

 

将以上生成的文件拷贝到vs2010,然后包含在你的项目之中,然后通过vs生成需要的 .dbml.layout

 

·         代码编辑器

您可以通过使用 Visual Studio代码编辑器或其他编辑器编写自己的代码。我们建议,在您具有现有数据库且可以使用 O/R 设计器或 SQLMetal 工具时不要使用这种方法,因为这种方法容易出错。但是,代码编辑器在改进或修改您已通过使用其他工具生成的代码方面非常有用。

可以通过手工或者其他设计工具把基础类生成出来,但是这种方法只比较适合读取数据,其他添加,删除等动作无法直接使用.

 

2.选择您要生成的代码类型。

·         用于基于属性的映射的 C# Visual Basic 源代码文件。

然后将此代码文件加入您的 Visual Studio 项目中。

·         用于外部映射的 XML 文件。

通过使用此方法,您可以将映射元数据放在应用程序代码外部。

DBML 文件,您可以在生成最终代码文件之前修改此文件。 

3.改进代码文件以反映您的应用程序的需要。

为此,您可以使用 O/R 设计器或代码编辑器。

 

使用对象模型

1.创建查询以从数据库中检索信息。

2.重写 InsertUpdate Delete 的默认行为。

这一步是可选的。

LINQ to SQL 不支持且无法识别级联删除操作。如果要从表中删除一个具有约束的行,必须在数据库的外键约束中设置 ON DELETE CASCADE 规则,或者使用自己的代码首先删除那些阻止删除父对象的子对象。否则,将会引发异常。

3.设置适当的选项以检测和报告并发冲突。

您可以保留模型用于处理并发冲突的默认值,也可以根据您的需要对其进行更改。有。

4.建立继承层次结构。

这一步是可选的。

5.提供合适的用户界面。

这一步是可选的,取决于您的应用程序的使用方式。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值