Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net webapi&;服务层&;EF6-无存储库模式_Asp.net_Asp.net Mvc_Entity Framework_Entity Framework 6 - Fatal编程技术网

Asp.net webapi&;服务层&;EF6-无存储库模式

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

我正在基于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的优缺点的大量选项。(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容器的工作之一。什么是状态服务?如果它是一个构造函数,那么它的声明完全不正确。