实体框架之领域驱动实践(三):案例:一个简易的销售系统
2010-09-30 22:37:42 来源:WEB开发网核心提示: 在从领域模型映射到数据模型的过程中,这个标识符通常都是被映射为关系数据库某个数据表的主键,这个应该是很容易理解的.其次,EF不支持实体行为,因此,整个模型只能被称为Entity Data Model,而不是Entity Model,因为它只支持对实体数据的描述.幸亏从.NET 2.0开始,托管语
在从领域模型映射到数据模型的过程中,这个标识符通常都是被映射为关系数据库某个数据表的主键,这个应该是很容易理解的.
其次,EF不支持实体行为,因此,整个模型只能被称为Entity Data Model,而不是Entity Model,因为它只支持对实体数据的描述.幸亏从.NET 2.0开始,托管语言开始支持partial特性,同一个类可以以部分类(partial class)的特性写入多个代码文件中.因此,如果需要向上述模型中的实体加入行为,我们可以在工程中加入几个代码文件,然后使用部分类的特点,为实体添加必要的行为.比如,下面的部分类向订单行中加入了一个只读属性,该属性用于计算某一单据行所拥有的总金额:
查看原图(大图)
有朋友会问,为什么我们要另外使用部分类,而不是直接在模型文件edmx的源代码上直接修改?因为这个源代码文件是框架动态生成的,如果在上面修改,等下次模型被更新的时候,你所做的更改便会丢失.
对于实体的行为,EF支持从数据库存储过程生成实体对象行为的过程.对此,我持批判态度:EF把数据模型与实体模型混为一谈了,这种做法只能让软件人员感到更加困惑.我在下一篇文章将重点表述我对这个问题的看法.我也相信微软在下一代实体框架中能够处理好这个问题.
更多精彩
赞助商链接