Web API&服务层& EF6 - 没有存储库模式

时间:2015-01-06 19:47:41

标签: asp.net asp.net-mvc entity-framework entity-framework-6

我正在创建一个基于ASP.NET Web API和EF6的新Web应用程序。

ProjectName
 -ProjectName.Data (All entity framework stuff)
 -ProjectName.Service (All business logic)
 -ProjectName.Web (ASP.NET Web API All front end logic)

我已经阅读了大量关于存储库模式和信息的信息。 UoW,以及EF的优缺点的大量选项。 (StackOverflow对"存储库模式"有10,081个结果。)

我们没有任何计划 要更改到不同的数据库并使用EF6我已经阅读过你可以进行单元测试而无需额外的抽象。

我倾向于不使用存储库或UoW,而是直接从服务层直接与DbContext对话。

任何人都可以提供实施 EF6而没有存储库,带有服务层的示例吗?

更好的是在现实生活中使用它的示例项目或github项目?

修改

类似的问题:

Implementing Repository pattern and doing Tests

Generic Repository With EF 4.1 what is the point

这些是关于同一主题的问题,但它们都没有提供在类似于我所描述的架构中使用EF的良好代码示例:

如何在没有存储库/ UoW的情况下管理DbContext生命周期?

如何使用ef6新功能实现单元测试?

1 个答案:

答案 0 :(得分:0)

你的问题太宽泛了。实现相同结果的方法太多了。这是我的两分钱 -

虽然您不想使用存储库,但仍希望使用IoC容器注入依赖关系,例如NinjectAutofacStructureMap

如果是这样,您只需要将YourDbContext注入Service类。

例如,

public class CustomerService : ICustomerService 
{
   private readonly YourDbContext _context;
   private readonly ICacheService _cacheService;
   ...

   public StateService(
      YourDbContext context, 
      ICacheService cacheService, 
      ...)
   {
      _context = context;
      _cacheService = cacheService;
      ...
   }
}