首页 文章

ASP.NET Identity Framework ApplicationUser不是模型的一部分

提问于
浏览
0

我正在为我的问题寻找解决方案,但我找不到我的情况 .

我有两个项目应该链接在一起 . 其中一个是数据库,另一个是使用身份框架的ASP.NET MVC项目 .

为了使用我自己的数据库,我写道:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("MyDataSource", throwIfV1Schema: false)
    {
    }

    [...]
}

但我收到错误消息: The entity type ApplicationUser is not part of the model for the current context.

我在这里找到的解决方案是从IdentityDbContext继承ApplicationDbContext,但这显然不适合我 .

1 回答

  • 1

    这是非常普遍的错误 . 如果您使用的是model-first或db-first,请检查您的连接字符串以及它是否由EF自动生成,如下所示:

    <add name="MyDataSource" connectionString="metadata=res://*/Models.***.csdl|res://*/Models.***.ssdl|res://*/M‌​odels.***.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=(localdb)\ProjectsV12;Initial Catalog=DB_Projectname;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    

    然后将其更改为:

    <add name="MyDataSource" connectionString="Data Source=(localdb)\ProjectsV12;Initial Catalog=DB_Projectname;Integrated Security=True;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
    

    是的,只需删除模型元数据并将提供程序名称更改为System.Data.SqlClient .

    此外,请确保正确连接Identity . 您可以创建一个空的asp.net mvc项目,并将Startup.cs和Startup.Auth.cs与您的应用进行比较 .

相关问题