博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EntityFramework用法探索(五)引入Unity
阅读量:6678 次
发布时间:2019-06-25

本文共 1973 字,大约阅读时间需要 6 分钟。

在,我们引入了Repository模式和UnitOfWork模式。

探索还没有结束,我们引入。那用Unity做什么呢?

在上文中,我们手工定义了CustomerRepository中DbContext的,

1       DbContext context = new RETAILContext();2       DbContextAdapter contextAdaptor = new DbContextAdapter(context);3 4       IObjectSetFactory objectSetFactory = contextAdaptor;5       _repository = new Repository
(objectSetFactory);6 7 IObjectContext objectContext = contextAdaptor;8 _uow = new UnitOfWork(objectContext);

但如果表数量过多,手工编码会变得非常繁琐,使用IoC容器提供的功能来解决。

1       IUnityContainer container = new UnityContainer() 2         .RegisterType(typeof(IRepository<>), typeof(Repository<>), new ContainerControlledLifetimeManager()) 3         .RegisterType
(new ContainerControlledLifetimeManager()) 4 .RegisterType
(new ContainerControlledLifetimeManager()) 5 .RegisterType
(new ContainerControlledLifetimeManager()) 6 .RegisterType
(new ContainerControlledLifetimeManager()) 7 .RegisterType
(new ContainerControlledLifetimeManager()) 8 .RegisterType
(new ContainerControlledLifetimeManager()); 9 10 ICustomerRepository customerRepository = container.Resolve
();

则在CustomerRepository中的配置会简介些,

1     public CustomerRepository(IUnityContainer container)2     {3       Mapper.CreateMap
();4 Mapper.CreateMap
();5 6 _repository = container.Resolve
>();7 _uow = container.Resolve
();8 }

显然同样的测试代码仍然可以工作,不再赘述。

最后,如果需要可以将UnityContainer注入到中,以备使用。

1       UnityServiceLocator locator = new UnityServiceLocator(container);2       ServiceLocator.SetLocatorProvider(() => locator);

完整代码和索引

EntityFramework用法探索系列

本文转自匠心十年博客园博客,原文链接:http://www.cnblogs.com/gaochundong/archive/2013/06/06/entityframework_usage_with_unity.html,如需转载请自行联系原作者
你可能感兴趣的文章
Svn结合hook实现自动更新及多Project管理更新
查看>>
sgu 222
查看>>
让spring-data-jpa解放你的DAO
查看>>
58沈剑:架构师的平凡之路
查看>>
Hibernate问题-read-write缓存策略
查看>>
sql中实现汉字的拼音首字母查询
查看>>
Android 动态布局 (代码布局)
查看>>
MYSQL备份和恢复
查看>>
spark安装:在hadoop YARN上运行spark-shell
查看>>
Docker存储驱动之ZFS简介
查看>>
根据sql,一键生成excle 格式, 再通过 zip包压缩为zip
查看>>
PL/SQL Developer 添加数据
查看>>
PHP实时统计文件下载次数
查看>>
linux eth0 改eth1 在改ip
查看>>
乾颐堂鹏同学通过HCIE送给后来者的话
查看>>
JS中的prototype
查看>>
我的友情链接
查看>>
本体编辑和知识获取软件--protege汉化版
查看>>
23张非常精美的圣诞桌面壁纸分享
查看>>
性能下降曲线
查看>>