作者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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1500111064.A.1E7.html
1F:→ ssccg: 个人觉得entity framework(应该说ORM)是一种repository的实 07/15 18:40
2F:→ ssccg: 作,同一层的是像自己写SQL或是其他的data object mapping 07/15 18:43
3F:→ ssccg: 如果有天要换EF还不支援的资料存取例如NoSQL、cloud db 07/15 18:45
4F:→ ssccg: 还是需要能抽换成别的repository实作 07/15 18:46
5F:→ ssccg: 虽然理论上把EF介面当repository介面,换DB就换provider也 07/15 18:51
6F:→ ssccg: 是可以,但遇到没provider要自己写一个,要花的工一定是大 07/15 18:52
7F:→ ssccg: 於写个自己的repository的实作 07/15 18:52
8F:推 neo5277: 他回这个基本上,跟所谓的包出来的分层差不多啊,就是你 07/15 19:20
9F:→ neo5277: 专注在model,service就好了 07/15 19:20
10F:推 Litfal: 当你没有抽换这层的需要的时候,就不用做 07/15 22:11
11F:推 ga009900: 不写 Repository +1,做几十个专案没遇过说要抽换资料库 07/16 02:03
12F:→ ladadee: 感谢各位前辈的回覆 07/16 20:06