- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LINQtoSQL.doc
LINQ to SQL
上一章已经介绍了LINQ语言基础,这一章将重点讲述利用LINQ访问SQL Server数据库的问题。
同一种数据,例如工厂产品的规格、名称、数量等既能用自定义的方式表示,也可以用数据库来表示。它们表示的对象相同,处理方式大不相同。程序语言(如C#、Java等)常将数据抽象成类和对象,以达到“安全”、“重用”的目的;而数据库表格、行、列和关系来表示数据LINQ技术来处理数据库中数据的方法就是,先将数据库成类。
工具:SQL Metal和LINQ to SQL.SQL Metal是一个命令行工具,LINQ to SQL是一个O/R可视化设计器.下面重点介绍后者。
8.1 将数据库映射成类对象/关系设计器(O/R 设计器)提供了一个可视化的设计界面,用于建立数据库与实体类之间的映射。就是说,通过O/R 设计器可以在应用程序中创建数据库的对象模型。
目前,O/R 设计器只支持对 SQL Server 2000、SQL Server 2005、SQL Server 2008 和 SQL Server Express 数据库的映射。
8.1.1 映射的过程
现在结合微软提供的Northwind样板数据库,来讲解使用O/R设计器的方法:
在网站的Add_Data目录下将Northwind.mdf数据库调过来;
在“添加新项”的窗口中选择“LINQ to SQL类”,并在打开的新窗口中,修改文件名(这里改为“Northwind.dbml”),语言选“Visual C#”。最后在系统的提示下将映射的类放在App_Code目录下。此时将打开一个可视化化窗口;
窗口分为左、右两部分。左边可放入数据表及它们之间的关系;右边(按鼠标右键后在“隐藏/显示”之间切换)放入存储过程。现在打开“数据库资源管理器”,将多个数据表拖到窗口中来,然后将若干存储过程拖入右边窗口。其情况如图 所示;
界面中的方框就代表数据表映射后的实体类,数据库中的字段就映射成实体类中的属性。实体类之间的连线(associations)代表数据表之间的关系(relationships)。箭头代表“一对多”的同步关系,箭头的起始端代表“一”端,箭头的终点代表“多”端。
4.通过编译完成映射工作。
8.1.2 映射中的对应关系
数据库与实体类之间的映射关系是:
每张数据表(Table)映射成一个实体类(Entity class);
数据表中的字段(Column)映射成类中的属性(Class member);
数据库的关系(relationships)映射成类的关联(Association);
存储过程(Stored Procedure)映射成类中的方法(Method);
除此而外,系统还为数据库生成了一个DataContext类(这里的名字为NorthwindDataContext类),这个类像一座桥梁架设在数据库与实体类之间,具体作用包括以下几个方面:
连接数据库;
从数据库读取数据;
向数据库提交编辑的结果。
[注]:目前O/R 设计器是一个简单的对象关系映射器,它仅支持 1:1的映射关系,不支持复杂映射(例如,将实体类映射到联接表)。此外,该设计器还是一个单向代码生成器。这表示代码文件中只反映对设计器视图所做的更改。
在映射过程中可以修改类的属性,其属性窗口如图 所示:
属性窗口的上半部是类成员的属性,下半部是数据库成员的属性。例如:
上面的“名称”是类中的属性名,下面的“源”是对应于数据库中的字段名。如果将“名称”改用汉字时,网页中将用汉字显示相应的字段名。
如果将属性的“延迟加载”设为true时,该字段只有在以后使用时再加载。一些容量大的成员(如较大的图片),可以利用这个属性缩短打开网页的时间。
在视图中右击类的属性(字段)后选择“删除”,可以去掉一些应用程序中不用的字段(在数据库中字段并没有消失)。
对于映射的类可以增添“关系”、“继承”等。。。
8.1.3 映射后的部分代码
打开Northwind.designer.cs设计文件,就可以看到映射后各实体类的代码。
以Products数据表为例,它已经映射成以下的类:
[Table(Name=dbo.Products)]
public partial class Products :…
{…}
字段如ProductID、ProductName都已经映射成以下的属性:
private int _ProductID;
private string _ProductName;
public int ProductID
{
get
{
return this._ProductID;
}
set
{
if ((this._ProductID != value))
您可能关注的文档
- Kytsb《医学生物化学》各章节知识点习题及参考答案单项选择题文库.doc
- KⅢ等打印机故障实例.doc
- K中文说明书.doc
- K单点登录二次开发指导文档.doc
- k实施资料,知识常识等应该会对大家有帮助.doc
- k开关电源.doc
- K方案技术设计应用Q&A一.doc
- K线图测市技巧.doc
- K线掘金系列二十二:运用三角形形态寻找买点之二-.doc
- K线组合分析法酒田战法等.doc
- 新视野二版听说1第6单元示范1课件.ppt
- 【参考答案】 联络口译(第二版) 《联络口译》(第二版)参考答案.pdf
- 梅大高速茶阳路段“5·1”塌方灾害调查评估报告.docx
- 虹吸雨水PE管施工节点标准做法.pdf
- 2025消防设施施工质量常见通病防治手册,典型图示+规范要求.pptx
- 新视野大学英语(第二版)读写教程 4 空军工程大学编U05B.ppt
- E英语教程2(智慧版)Unit 6.pptx
- E英语教程3(智慧版)Unit 7.ppt
- 新视野二版读写1第4单元课件Section A How to Make a Good Impression.pptx
- E英语视听说教程4(智慧版)4-U2课件(2024版)U2.pptx
文档评论(0)