[问题] 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