实体框架asp.net应用程序中的UOW和存储库
发布时间:2020-12-16 10:01:35 所属栏目:asp.Net 来源:网络整理
导读:我刚刚开始阅读使用存储库和工作单元模式.我目前正在尝试在asp.net Web表单应用程序中使用它与Entity Framework.但我有一个问题,我不确定我是否能够以一种简单的方式解释. 据我所知,工作单元用于封装业务事务.从我看到的示例中,以下列方式使用uow businessMe
我刚刚开始阅读使用存储库和工作单元模式.我目前正在尝试在asp.net Web表单应用程序中使用它与Entity Framework.但我有一个问题,我不确定我是否能够以一种简单的方式解释.
据我所知,工作单元用于封装业务事务.从我看到的示例中,以下列方式使用uow businessMethod1() { uow u = new uow(); //instantiate unit of work repository1 rep1 = new repository1(uow); //instantiate repository1 repository2 rep2 = new repository2(uow); //instantiate repository1 rep1.dowork(); rep2.dowork(); u.save(); //save the changes made to the database. (effectively saving changes made //in both repository classes } 现在假设我有一个businessMethod2(),它类似于上面描述的方法.假设我想在businessMethod2()中使用businessMethod1(),这将是最佳实践.我想分享工作单位,所以我应该把它作为一个论点来传递?即改变上述方法 businessMethod1(uow u) { bool isNew = false; if (u == null) { u = new uow(); isNew = true; } repository1 rep1 = new repository1(uow); //instantiate repository1 repository2 rep2 = new repository2(uow); //instantiate repository1 rep1.dowork(); rep2.dowork(); if (isNew) u.save(); //save the changes made to the database. } 这是一个正确的方法吗? 我在想更好的方法是使用单身人士哇.在每个页面请求中,都会创建一个新的uow实例,并由所有业务方法共享.在新请求中,将创建不同的实例.使用单身uow意味着我不必将其传递给我的任何商业方法,并且可以同时与我的所有业务方法共享它. 这样做有什么缺点吗?还有更好的方法来实现这个吗? 解决方法
解决此问题的一种方法是使用依赖注入.通常,构造函数注入与单个入口点一起使用以解决依赖性.
public class MyBusinessService { public MyBusinessService(Repository1 repository1,Repository2,uow u) { // assign the params to fields } public void businessMethod1() { } public void businessMethod1() { } } 有很多流行的DI框架.选择你认为适合你的东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – System.Web.Cache和HTTPContext.Curent.Cache之
- asp.net – UpdatePanel.Visible = true无效
- asp.net-core – Asp.net Core中的Web应用程序与Web Api项目
- asp.net-mvc – VIEWDATA和VIEWBAG存储在MVC中的哪个位置?
- asp.net – MS Access中的触发器
- 有没有办法确保(仅)在HTTPS协议上运行ASP.NET应用程序?
- asp.net – 为什么Response.BufferOutput = False,不工作?
- Asp.NET cookies返回null
- .net – 从Orchard内的主题渲染图像
- asp.net – .Net平台有Django还是Rails?
推荐文章
站长推荐
热点阅读