[問題] ASP.NET MVC 分層式架構問題

作者: ladadee (LaDaDee)   2017-07-15 17:31:02
想請教各位前輩
小弟目前接觸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);
跟一般常見的每種表都要建一個倉儲,比起來只要一個倉儲
請問這種作法有比較好嗎 ??
現在也還不會單元測試,不曉得是不是寫單元測試的時候會有困難
以上問題懇請賜教
作者: ssccg (23)   2017-07-15 18:40:00
個人覺得entity framework(應該說ORM)是一種repository的實作,同一層的是像自己寫SQL或是其他的data object mapping如果有天要換EF還不支援的資料存取例如NoSQL、cloud db還是需要能抽換成別的repository實作雖然理論上把EF介面當repository介面,換DB就換provider也是可以,但遇到沒provider要自己寫一個,要花的工一定是大於寫個自己的repository的實作
作者: neo5277 (I am an agent of chaos)   2017-07-15 19:20:00
他回這個基本上,跟所謂的包出來的分層差不多啊,就是你專注在model,service就好了
作者: Litfal (Litfal)   2017-07-15 22:11:00
當你沒有抽換這層的需要的時候,就不用做
作者: ga009900 (Lienfa)   2017-07-16 02:03:00
不寫 Repository +1,做幾十個專案沒遇過說要抽換資料庫
作者: ladadee (LaDaDee)   2017-07-16 20:06:00
感謝各位前輩的回覆

Links booklink

Contact Us: admin [ a t ] ucptt.com