视频演示:http://u.115.com/file/f223235faf
演示重点说明
在前一个演示中,我们通过使用两个一对多的关系建立了LINQ to SQL中的伪多对多关系,之所以称之为伪关系,只是表示它并非是真正意义上的多对多关系。然而,前面的做法却给使用对象模型的调用方带来了一点小小的麻烦。因为,调用方无论是从两个实体类的哪一方去获取另外一方关联数据的时候,都必须显示的跨越实体类对象。这难道不让人觉得很麻烦吗?在这个演示中,我们要实现的效果,就是把这个链接表的实体类对象给隐藏起来。
具体要实现的效果是这样的:通过实体类的某个集合属性直接来获取与之关联的另一方实体类的对象。当然,这个方案仍然是基于上一个方案的,只是我们得想点办法把链接表实体类给隐藏起来。
在本演示中,最终实现的结果则是这样的:通过Customer.Products属性直接获取客户订购的所有产品数据,而通过Product.Customers属性来获取订购当前产品的所有客户数据。
没有进行修改之前的对象模型
下面的代码是没有进行修改前的对象模型,也就是上个演示所建立的对象模型,只贴出重点代码,完整的代码已经和演示视频一起打包,可以下载查看。
Customer.cs
Product.cs
CustomerProduct.cs
从上面的示例代码来看,Customer实体类是没有Products属性,Product实体类也没有Customers属性,不是我没有贴上去,而是还没有定义呢。要如何定义呢?看下面的两段代码:
Customer.Products
Product.Customers
把上面这两个属性添加到对应的实体类中就可以了。这些代码是什么意思呢?大家应该一看就明白了。如果实在不明白的话,演示视频中有详细的解说。
有了上面这两个属性,现在就可以通过Customer.Products属性直接访问客户订购的所有产品对象了,也可以直接通过Product.Customers属性直接获取订购此产品的所有客户对象了。实际上还是借助于链接表实体类CustomerProduct,只不过我们把这个信息隐藏到了集合属性中。
接着,调用方再来使用这个对象模型的时候,就简单的多了。如下面的两段测试代码:
直接通过客户对象获取客户订购的所有产品对象:
直接通过产品对象获取订购此产品的所有客户对象:
呵呵,怎么样,是不是变的简单了一些呢?虽然,对象模型增加了一点点的复杂性,但是当调用方调用这个对象模型的时候就变的简单了一些。因此,为对象模型增加的这点复杂性是值得的,因为有时候我们自己就是调用方。更何况使用对象模型的次数远远要比定义对象模型的次数多嘛!^_^
光脚丫思考 2010-10-30
分享到:
相关推荐
LINQ学习LINQ学习LINQ学习LINQ学习LINQ学习LINQ学习LINQ学习LINQ学习LINQ学习LINQ学习LINQ学习LINQ学习LINQ学习LINQ学习LINQ学习
适合新手刚刚学习实体类框架和linq看看!
LINQ查询基础:介绍LINQ的基础,什么是LINQ,如何使用以及表达式及其查询方法
LINQ Unleashed: for C# (Unleashed) (Paperback - Jul 24, 2008)
这个项目,最近学习了Linq数据访问技术,就顺便测试了四种基本操作,结果成果了。Linq的使用起来比较方便,不需要编写ADO.NET中的许多的类,也不要编写大量的存储过程。
LINQ 数据访问中文教程
精通LINQ数据访问技术,实用的数据库编程指导书
精通LINQ数据访问技术数据库 精通LINQ数据访问技术数据库
精通LINQ数据访问技术第12章 精通LINQ数据访问技术第12章
完整版,不解释. 完整版,你懂得。 linq基础入门,数据库访问技术。
全面介绍LINQ基本架构、技术原理、查询操作等内容深入剖析C#3.0中支持LINQ的语法功能涵盖LINQ to SQL、LINQ to Objects、LINQ to DataSet和LINQ to XML提供了87个ASP.NET Web实例及1个Windows窗体实例多媒体视频演示...
包含指向相关主题的链接,这些主题说明如何使用 LINQ to Objects 来访问内存中的数据结构。 8.LINQ to XML 包含指向说明如何使用 LINQ to XML 的主题的链接,此功能可提供文档对象模型 (DOM) 的内存中文档修改 功能...
一步一步学Linq to sql(二):DataContext与实体 8 一步一步学Linq to sql(三):增删改 14 一步一步学Linq to sql(四):查询句法 20 一步一步学Linq to sql(五):存储过程 34 一步一步学Linq to sql(六):...
linq to datasets,通过linq访问强类型数据集
一步一步学Linq to sql(二):DataContext与实体 9 一步一步学Linq to sql(三):增删改 15 一步一步学Linq to sql(四):查询句法 21 一步一步学Linq to sql(五):存储过程 35 一步一步学Linq to sql(六):...
LINQ数据库访问技术 LINQ数据库访问技术 LINQ数据库访问技术
一步一步学Linq to sql(二):DataContext与实体 9 一步一步学Linq to sql(三):增删改 15 一步一步学Linq to sql(四):查询句法 21 一步一步学Linq to sql(五):存储过程 35 一步一步学Linq to sql(六):...
包含指向相关主题的链接,这些主题说明如何使用 LINQ to Objects 来访问内存中的数据结构。 8.LINQ to XML 包含指向说明如何使用 LINQ to XML 的主题的链接,此功能可提供文档对象模型 (DOM) 的内存中文档修改 ...
一步一步学Linq to sql(二):DataContext与实体 9 一步一步学Linq to sql(三):增删改 15 一步一步学Linq to sql(四):查询句法 21 一步一步学Linq to sql(五):存储过程 35 一步一步学Linq to sql(六):...
精通LINQ数据访问技术:基于C# 共13章。 第1章至第2章介绍了LINQ的基本语法,如隐型局部变量、Lambda表达式、查询表达式等,详细讲解了LINQ查询的基本子句和操作。 第3章至第11章详细介绍了LINQ to SQL、LINQ to ...