首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DI和Repository与EF一起实现ASP.NET MVC 3工作单元

使用DI和Repository与EF一起实现ASP.NET MVC 3工作单元
EN

Stack Overflow用户
提问于 2012-01-30 01:50:36
回答 1查看 1.4K关注 0票数 3

因此,我试图在系统的设计阶段实现最佳实践。我将使用带有实体框架4、ASP.NET MVC 3 C#和存储库/工作单元模式的DI容器(ninject)。

  • 我将有模型,其中每个数据库的表被映射到类。
  • 我将为web.config中的每个数据库提供一个连接字符串。
  • 我将为每个连接字符串(使用EF约定命名相同)创建一个类,它从DbContext继承,并为每个表拥有一个DbSet。
  • 我将为每个由约定ITRepository命名的数据库实体提供一个抽象存储库接口,其中T是database实体的名称(ICarRepository用于数据库实体Car)。每个存储库接口将为实体保存一个IQueryable,并定义应该公开哪些方法。
  • 我将有一个具体的存储库EFTRepository,它继承自ITRepository,并定义公开的方法是如何工作的。
  • 我将为只需要最少访问权限的实体(如基本CRUD )定义一个GenericRepository<TEntity>,以供使用。
  • 我将使用来自ControllerFactory的宁特作为DI容器。
  • 我将在Application_Start()中附加一个9对象控制器工厂。
  • 我将绑定所有依赖项,例如工厂的AddBindings()方法中的AddBindings。
  • 我将为每个数据库实现一个工作单元模式,并保持命名约定UnitOfWorkDB (数据库汽车的UnitOfWorkAutomobile)。
  • 工作股将保存有关的数据库背景和资料库。

我说得对吗?我以前没有使用过这组模式,我想确保我将正确地使用它们。欢迎批评!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-30 05:09:43

从基本存储库继承可以提供一些简单的“泛型”功能,但在其他情况下,您很快就会发现,尝试一个基于泛型的存储库(假设这就是继承的内容)会变得很麻烦。

你所描述的其他一切似乎都很不错。

您没有说要在哪里注入什么,我假设您将注入一个服务,该服务将使用一个工作单元(IUnitOfWork表示作为每个请求实例创建的ex. )和一个IWhateverRepostory

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9058514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档