我正在创建一个基于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新功能实现单元测试?
答案 0 :(得分:0)
你的问题太宽泛了。实现相同结果的方法太多了。这是我的两分钱 -
虽然您不想使用存储库,但仍希望使用IoC容器注入依赖关系,例如Ninject,Autofac和StructureMap。
如果是这样,您只需要将YourDbContext注入Service类。
例如,
public class CustomerService : ICustomerService
{
private readonly YourDbContext _context;
private readonly ICacheService _cacheService;
...
public StateService(
YourDbContext context,
ICacheService cacheService,
...)
{
_context = context;
_cacheService = cacheService;
...
}
}