【发布时间】:2014-09-11 15:57:44
【问题描述】:
我正在阅读的书说我应该使用 OWIN 来获取我的数据库上下文的实例以使用 Identity...但是我首先使用数据库,所以我想要一个数据库上下文的实例以供整个使用我的应用程序。
我通过以下方式为 OWIN 实现了“开始”类:
using Owin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using uQuiz.Domain;
using uQuiz.Domain.Concrete;
using uQuiz.WebUI.Infrastructure;
namespace uQuiz
{
public class OwinStart
{
/// <summary>
/// Configures OWIN
/// </summary>
/// <param name="app"></param>
public void Configuration(IAppBuilder app)
{
app.CreatePerOwinContext<QuizEntities>(GetQuizEntities);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
}
/// <summary>
/// Returns an instance of the QuizEntities database context for OWIN
/// </summary>
/// <returns></returns>
public static QuizEntities GetQuizEntities()
{
return new QuizEntities();
}
}
}
如您所见,我在那里有一个函数,它只生成我的数据库上下文 QuizEntities 的单个实例,这是数据库首先自动生成的。
我知道在您的数据库上下文中有一个“创建”方法是正常的做法,但我不能这样做,因为它是自动生成的。
我的问题:
- 以这种方式“按 OWIN”创建实例是否有不利之处?
- 这是一种可接受的实施方式吗?
- 是否可以为应用程序中的身份和其他请求使用相同的数据库上下文?
【问题讨论】:
-
这不是基于意见的我要求针对这种情况的最佳实践,即使用 OWIN 但首先获取我的数据库实例用于数据库(不是代码优先)并将其用于身份框架和对于其他请求。谢谢
标签: c# asp.net-mvc dbcontext owin