步步学LINQ to SQL:将类映射到数据库表

发表于:2011-11-21 09:55

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:罗江华    来源:51Testing软件测试网采编

  该系列教程描述了如何采用手动的方式映射你的对象类到数据表(而不是使用象SqlMetal这样的自动化工具)以便能够支持数据表之间的M:M关系和使用实体类的数据绑定。即使你选择使用了自动生成类的工具,理解这一实现过程可以让你更加方便地对你的应用程序加以扩展。

  下面阐述本文的目标以及该示例程序为初级开发人员介绍如何学习LINQ的基本要点:

  ·使用LINQ to SQL将SQL Server数据库表映射到与之关联的对象上。

  ·执行一些简单的LINQ查询来检索数据。

  本文详细为你阐述了如何在你的应用程序中实现LINQ to SQL。附件的示例程序包括了这里探讨的所有代码,还提供了一个简单的WPF图形界面程序来显示通过数据绑定返回的结果集。

  开始部分:LINQ to SQL是一种对象关系隐射工具,该工具允许你在.NET 3.5框架平台上将SQL Server数据库映射成对象类。

  数据库:该示例使用SQL Server Express作为数据库,在该数据库中包涵了Books, Authors, 和 Categories三张数据表。每本书仅仅属于某一图书类别,但是每本书可有多个作者,每个作者可以写多本书。BookAuthors表用于处理books表和authors表之间的多对多关系。为简单起见,除了Books.Category列以外,其余列都不允许为空。

  这些表可以允许我们针对每个主类型进行关系(1:M,M:1,和M:M)之间的映射。

  本文的其余部分将描述如何将应用程序的数据表与它们的对象类关联起来以及如何使用LINQ来检索结果集。LINQ将使用这些数据表作为示例来阐述这些概念。

  应用程序:使用LINQ to SQL, 创建一个.NET 3.5框架之上的工程并添加对程序集 System.Data.Linq的引用。

  1、映射DataContext到数据库

  如果你为数据库创建了一个强类型的DataContext,则该类只会对外提供一个单一的入口点,使得外界可以方便地的访问你的数据。该类将负责处理数据库的连接并定义你需要连接的每张数据库表。

  *注意: 在DataContext类中你可以忽略M:M的表连接(例如:BookAuthor),因为它们仅仅使用they're only used behind the scenes to hook up M:M relationships(在本文的后半部分会进行阐述)。

  (1)创建一个使用了 [Database]特性的类来扩展 DataContext

  创建一个扩展自DataContext的数据库类,并为其添加[Database]特性以表明该类被映射到了数据库。

  如果你使用的类名与数据库的名称不一样,那么你可以通过使用特性的Name参数进行设定([Database (Name="BookCatalog")])。如果名称是相同的,此时你可以忽略该参数。

using System.Data.Linq.Mapping;
namespace LINQDemo
{
[Database]
public class BookCatalog : DataContext{}
}

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号