C# 在上下文中,每个请求使用一个实例

C# 在上下文中,每个请求使用一个实例,c#,asp.net-mvc,asp.net-mvc-5,owin,C#,Asp.net Mvc,Asp.net Mvc 5,Owin,我在上面创建了一个数据上下文,这段代码是在我启动一个新的MVC5项目时随项目附带的。同时,我使用autofac在依赖项注册器中为每个请求注入一个实例 builder.RegisterType().As().InstancePerRequest() 使用owin和DI容器的最佳方式是什么 我有一个DataContext类,它有一个静态方法,名为Create,如上所述,例如,当我尝试在数据库类中插入一个记录器时,会出现这种中断 我还对一个示例项目感兴趣,如果有的话,在同一个项目中演示DI和owin

我在上面创建了一个数据上下文,这段代码是在我启动一个新的MVC5项目时随项目附带的。同时,我使用autofac在依赖项注册器中为每个请求注入一个实例

builder.RegisterType().As().InstancePerRequest()

使用owin和DI容器的最佳方式是什么

我有一个DataContext类,它有一个静态方法,名为
Create
,如上所述,例如,当我尝试在数据库类中插入一个记录器时,会出现这种中断


我还对一个示例项目感兴趣,如果有的话,在同一个项目中演示DI和owin

不必同时使用OWIN和DI容器。我可以理解您的困惑,因为CreatePerOwinContext上的文档非常稀少,但事实是,此功能仅作为“穷人的DI”实现,可能应该由正常的DI框架取代。微软ASP.NET团队的郝恭说你是


如果您不获取由OWIN中间件创建的实例,而是将上下文注入控制器,那么您可以安全地删除它。请记住相应地更新脚手架控制器

不确定从owin创建的实例获取是什么意思。你是怎么做到的?有样品吗?你到底想做什么?为什么必须同时使用OWIN和DI容器?我可以理解您的困惑,因为CreatePerOwinContext上的文档非常稀少,但事实是,此功能仅作为“穷人的DI”实现,可能应该由正常的DI框架取代。微软的Hao Kung是ASP.NET团队中的一员,他说你可以自由地用一个合适的DI框架来替换它:在这里同意Tobias。这些只是为每个请求创建上下文的方便方法。如果你有自己的方法,那么只需删除模板代码。请注意链接现在已失效。。。如果可以再次找到,可能很高兴更新。看到这个吗
app.CreatePerOwinContext(DataContext.Create);