nopCommerce 学习之路(二)从EF到NPoco

各位看官久等了。最近比较忙乱,一是因为学习新技术本身就是一件很耗精力的事情,另一个原因该项目升级为了一个商业项目。然后还有PB项目的开发,时间紧,任务重……

------------------------------技术理想与生活实现分割线------------------------------------

 

这篇主要是总结了一下ORM层面从EF迁移到NPoco上,涉及到的一些操作,写的比较笼统,需要详细解释的可以留言。

 

一、Nop.Data部分
   迁移后的项目文件结构,见下图:
    
 
     1、创建NPocoContext,实现IDbContext接口。(尚未实现存储过程相关的接口)。
 
     2、创建NPocoRepository,实现IRepository接口。
 
     3、将BaseEntity拆分,结构定义如下:
         
 
 
二、Nop.Domain部分
     迁移后项目文件结构如下:
  
 
  大部分Entity都是可以直接使用的,有三种情况需要进行更改:
 
     1、对于1对多的Entity关系,EF是在通过设置/代码配置后,自动映射,体现到数据库中就是各种Mapping表。而对于NPoco而言,必须手动实现,因此需要创建个Mapping的Model,继承自BaseMapping。
 
     2、EF中很多多表联查的从查询Entity,改成在数据库中建试图,然后创建Model。对于有Id的查询,继承自BaseViewEntity;没有的继承自BaseView。
 
     3、对于分页实现,Nop判断是否支持存储过程,如果支持使用存储过程;如果不支持,用LinQ。而NPoco自带Page()函数,因此改为数据库的View+Page()函数实现。
 
 
三、总结
 
  1、EF很符合微软技术的一贯气质,大而全,由繁入简,学起来比较累。
 
  2、NPoco属于草根气质,小而精,由简入繁,可以循序渐进的使用,我喜欢草根。
 
 
 
posted @ 2014-04-25 16:20  东至  阅读(6351)  评论(5编辑  收藏  举报