Web Api 2应用程序上下文丢失

时间:2014-02-06 19:15:24

标签: c# asp.net asp.net-web-api asp.net-mvc-5

我很难在WebApi 2默认项目中找到'ApplicationContext'。在MVC5应用程序中,Model中有一个名为ApplicationContext的类,它使用web.config中定义的ConnectionString:

 public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }
}

很容易添加DbSets并在MVC5网页项目的一个上下文中拥有所有数据,但是我无法在webapi 2项目中找到这个类。

必须有一个类在WebApi项目中的某处扩展DbContext或IdentityDbContext,它也使用连接字符串,但我搜索了整个项目但找不到它。是否可以在webapi 2项目中拥有应用程序范围的DbContext,其中包含所有帐户数据(用户名,pw哈希,角色,外部主题等)以及我定义的所有其他数据(DbSets)?

ApiController中似乎有一个UserManager类,但我认为无法在那里添加自己的自定义数据。

1 个答案:

答案 0 :(得分:1)

ApplicationDbContext 类不是框架的一部分,因此您必须自己添加它。如果它未包含在模板中,您可以像在代码段中一样轻松地自行添加。在您的情况下,您将创建一个派生自 IdentityDbContext 的上下文,该上下文又派生自 DbContext 。在此上下文中,您可以添加自定义 DbSet 。如果您无法创建此上下文,请将其从现有的MVC5项目(我猜您已经就位)复制到Web API项目中。

如果有任何错误,请确保您的项目中有适当的NuGet引用,尤其是ASP.NET Identity的实体框架实现。