作者ladadee (LaDaDee)
看板C_Sharp
標題[問題] ASP.NET MVC 分層式架構問題
時間Sat Jul 15 17:31:02 2017
想請教各位前輩
小弟目前接觸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