1、对于1对多的Entity关系,EF是在通过设置/代码配置后,自动映射,体现到数据库中就是各种Mapping表。而对于NPoco而言,必须手动实现,因此需要创建个Mapping的Model,继承自BaseMapping。
2、EF中很多多表联查的从查询Entity,改成在数据库中建试图,然后创建Model。对于有Id的查询,继承自BaseViewEntity;没有的继承自BaseView。
3、对于分页实现,Nop判断是否支持存储过程,如果支持使用存储过程;如果不支持,用LinQ。而NPoco自带Page()函数,因此改为数据库的View+Page()函数实现。
POCO是指Plain Old Class Object,也就是最基本的CLR Class,在原先的EF中,实体类通常是从一个基类继承下来的,而且带有大量的属性描述。而POCO则是指最原始的Class,换句话说这个实体的Class仅仅需要从Object继承即可,不需要从某一个特定的基类继承。主要是配合Code First使用。Cost Frist则是指我们先定义POCO这样的实体class,然后生成数据库。实际上现在也可以使用Entity Framework Power tools将已经存在的数据库反向生成POCO的class(不通过edmx文件)。