看板 C_Sharp 關於我們 聯絡資訊
想請教各位前輩 小弟目前接觸MVC未滿一年,因公司資深人員不是主要寫mvc的,所以都自行在網路上學習 最近在看分層架構 基本上都是 Repository + Unit of Work 但也有看到說 Entity Framework 已經提供類似的功能 所以不需要另外做 搞得小弟有點 混亂 GitHub 找了幾個別人做的專案來看 還是都有這樣做 不曉得各位前輩的作法是什麼 ?? 另外在 "博客园的大牛们,被你们害惨了,Entity Framework从来都不需要去写 Repository设计模式" 一文中 看見下方的評論有人回了一段程式 public class EFRepository : IEFRepository { ... public void Insert<T>(T entity) where T : class { context.Set<T>().Add(entity); } .... } 用的時候 repository.Get<T_Customer>(x => x.CustomerId == customerID); 跟一般常見的每種表都要建一個倉儲,比起來只要一個倉儲 請問這種作法有比較好嗎 ?? 現在也還不會單元測試,不曉得是不是寫單元測試的時候會有困難 以上問題懇請賜教 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.241.153.178 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1500111064.A.1E7.html
ssccg: 個人覺得entity framework(應該說ORM)是一種repository的實 07/15 18:40
ssccg: 作,同一層的是像自己寫SQL或是其他的data object mapping 07/15 18:43
ssccg: 如果有天要換EF還不支援的資料存取例如NoSQL、cloud db 07/15 18:45
ssccg: 還是需要能抽換成別的repository實作 07/15 18:46
ssccg: 雖然理論上把EF介面當repository介面,換DB就換provider也 07/15 18:51
ssccg: 是可以,但遇到沒provider要自己寫一個,要花的工一定是大 07/15 18:52
ssccg: 於寫個自己的repository的實作 07/15 18:52
neo5277: 他回這個基本上,跟所謂的包出來的分層差不多啊,就是你 07/15 19:20
neo5277: 專注在model,service就好了 07/15 19:20
Litfal: 當你沒有抽換這層的需要的時候,就不用做 07/15 22:11
ga009900: 不寫 Repository +1,做幾十個專案沒遇過說要抽換資料庫 07/16 02:03
ladadee: 感謝各位前輩的回覆 07/16 20:06