Asp.net webapi&;服务层&;EF6-无存储库模式
我正在基于ASP.NETWebAPI和EF6创建一个新的web应用程序Asp.net webapi&;服务层&;EF6-无存储库模式,asp.net,asp.net-mvc,entity-framework,entity-framework-6,Asp.net,Asp.net Mvc,Entity Framework,Entity Framework 6,我正在基于ASP.NETWebAPI和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的优缺点的大量选项。(StackOverflo
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对“存储库模式”有10081个结果)
我们从来没有计划
要转换到不同的数据库,并且使用EF6,我已经读到了,您可以在没有额外抽象的情况下进行单元测试
我倾向于不使用存储库或UoW,而是直接从服务层与DbContext对话
任何人都可以提供不使用存储库、使用服务层实现EF6的示例吗
在现实生活中使用它的示例项目或github项目更好吗
编辑:
类似问题:
这些都是关于同一主题的问题,但它们都没有提供在类似于我所描述的体系结构中使用EF的良好代码示例:
如何在没有存储库/UoW的情况下管理DbContext生存期
如何使用ef6新特性实现单元测试?你的问题太广泛了。有太多的方法可以达到同样的结果。这是我的两分钱- 尽管您不想使用存储库,但仍然希望使用IoC容器(如和)注入依赖项 如果是这样,您只需要将DbContext注入服务类 比如说,
public class CustomerService : ICustomerService
{
private readonly YourDbContext _context;
private readonly ICacheService _cacheService;
...
public StateService(
YourDbContext context,
ICacheService cacheService,
...)
{
_context = context;
_cacheService = cacheService;
...
}
}
stackoverflow.com/q/5625746/861716和其他答案并没有提供一个代码示例——“存储库目前非常流行,使用过度。每个人都使用它们,只是因为有几十篇关于为实体框架创建存储库的文章,但实际上没有人描述与此决策相关的挑战”我知道,但是询问代码示例使得这个问题对于StackOverflow来说过于宽泛。因此,这个问题要么以“过于宽泛”或“基于观点”(因为这些例子是一个品味问题)或“不清楚你在问什么”(因为“例子”可以是任何东西),要么以重复的形式结束。你最新的编辑只会让问题变得更宽泛。关于这些问题有很长的博客帖子,比如。我知道有很长的博客帖子:)我已经读了24小时了,这正是我要求提供真实世界详细示例的原因。我找到了100个使用repository实现此功能的示例,但没有一个用于“无repository”实现我如何管理上下文生命周期?无需处置?IoC容器将为您处置它(一旦您在rootscope中设置了对象生存期)。这是IoC容器的工作之一。什么是状态服务?如果它是一个构造函数,那么它的声明完全不正确。