前一篇介绍了仓储的基本概念,并谈了我对仓储的一些认识,本文将实现仓储的基本功能。 仓储代表聚合在内存中的集合,所以仓储的接口需要模拟得像一个集合。仓储中有很多操作都是可以通用的,可以把这部分 ...
上一篇介绍了工作单元层超类型的封装演化过程,本文将介绍对Entity Framework映射层超类型的封装。 使用Entity Framework一般需要映射三种类型的对象,即实体 聚合 值对象。 聚合与实体映射的主要区别是:聚合映射单属性标识Id,并需要映射乐观离线锁Version,而实体的标识往往需要映射成复合属性,这样方便物理删除聚合中的实体。Entity Framework通过Entit ...
2014-12-08 18:55 1 3486 推荐指数:
前一篇介绍了仓储的基本概念,并谈了我对仓储的一些认识,本文将实现仓储的基本功能。 仓储代表聚合在内存中的集合,所以仓储的接口需要模拟得像一个集合。仓储中有很多操作都是可以通用的,可以把这部分 ...
上一篇介绍了值对象的基本概念,得到了一些朋友的支持,另外也有一些朋友提出了不同意见。这其实是很自然的事情,设计本来就充满了各种可能性,没有绝对正确的做法,只有更好的实践。但是设计与实践的好与坏,对 ...
问题的解决。 这是《企业应用架构模式》中给出的定义,不过看上去有点抽象。它大概的意思是说,对多个操作进 ...
敏捷时代的来临,迫使微软.Net技术也在向敏捷方向发展。近几年,.Net在数据访问、Web、测试等多个领域大刀阔斧的进行改革,新技术不断涌现。一方面这是值得庆幸的,让.Net程序员在开发复杂项目有了更多的选择,一改往日只能拖控件绑定数据的局面。另一方面,程序员需要大量的学习,并且需要依赖更多 ...
对于BS管理系统,我很长一段时间都工作在Asp.Net Web Form上,Web Form的主要优势是可以使用服务器端控件,以类似CS的开发模式进行工作,通过拖拽控件和定义事件处理函数,极大的简 ...
前面已经做了一些准备工作,本篇将介绍查询条件的封装,它是规约模式的一个应用。 规约使用一个对象来封装谓词,我之前已经介绍过它在验证方面的应用,本篇是规约模式在查询方面的应用。 规约的强大之处在于,能够将一堆杂乱无章的条件判断或查询条件封装起来,以一个清晰的概念来表达,并使得这些谓词 ...
,我们可以编写一个通用分页存储过程来进行分页查询,然后通过一个DataTable返回给业务层。不过进入 ...
信息系统的查询需求千变万化,在仓储中为每个查询需求创建一个特殊方法,将导致大量乏味而臃肿的接口。 一种更加可行的办法是,在应用层服务中描述查询需求,并通过仓储执行查询。 为了能够更好的描述查询需求,可以将查询功能从仓储中抽取出来,专门创建一个查询对象。 查询最复杂的部分是条件 ...