如何在数据库优先项目中获取OWIN数据库上下文

本文关键字:数据库 获取 OWIN 上下文 项目 | 更新日期: 2023-09-27 18:21:36

我已经花了好几天的时间让Identity Framework来处理我的数据库第一个项目。我看到的这本书似乎只是解释了如何首先使用数据库实现它,但它提到了OWIN。

我可以从代码第一个版本中看到,我们可以通过对返回自身实例的数据库上下文调用静态Create方法来获得数据库上下文的OWIN实例。

OWIN是否与数据库优先模型和数据库上下文兼容?如果是,如何使用OWIN获取数据库上下文的实例?

这就是你如何在代码中做到这一点:

数据库上下文

public class AppIdentityDbContext : IdentityDbContext<AppUser> {
    public AppIdentityDbContext() : base("IdentityDb") {}
    public static Create() {
        return new AppIdentityDbContext();
    }
}

从OWIN开始类调用:

app.CreatePerOwinContext<AppIdentityDbContext>(AppIdentityDbContext.Create);

如何在数据库优先项目中获取OWIN数据库上下文

我意识到OWIN的内容与应用程序是先使用实体框架代码还是先使用数据库没有直接关系。

OWIN上下文用于获取ASP.NET Identity Framework的UserManager、RoleManager等。在此上下文中指定的DbContext实际上只供这些类使用,而不仅仅用于ASP.NET MVC应用程序中的一般用途。

我现在使用IoC容器将我的DbContext注入到我的项目中的控制器中。(我使用的是Ninject,但还有其他一些,如Unity、MEF)