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屬於草根氣質,小而精,由簡入繁,可以循序漸進的使用,我喜歡草根。
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM