【问题标题】:MVC5 ApplicationUser is not part of the model for the current contextMVC5 ApplicationUser 不是当前上下文模型的一部分
【发布时间】:2014-02-16 22:08:28
【问题描述】:

我正在尝试在我现有的 SQL Server 2008 数据库上创建成员表,并使用它而不是在 Visual Studio 中为我创建的默认数据库,但在注册帐户时出现错误。有没有办法像以前使用 aspnet_regsql 一样手动创建表?

错误: 实体类型 ApplicationUser 不是当前上下文模型的一部分

我想出了答案。 applicationUser 不喜欢使用由数据库优先方法创建的连接字符串。您需要使用标准连接字符串。

【问题讨论】:

  • 这张表是否与生成的表相同?我们只是在这里谈论连接字符串的更改吗?保持代码优先还是转向 DbFirst?
  • 我的 sql server 2008 上已经有一个包含现有表的数据库。我已经为它创建了连接。一切都很好,除了当我尝试注册一个帐户时,它会出错并且不会在我的 sql server 上的数据库中创建表。
  • 现有表中已包含表。它应该只创建额外的成员资格表,但会出错。

标签: asp.net-mvc-4 asp.net-mvc-5


【解决方案1】:

在您的 IdentityModel.cs 中

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

在 WebConfig 中,使用 2 个不同的连接字符串,一个用于 ApplicationDbContext,另一个 他们首先为您的数据库设置 .edmx 设置:

<add name="DefaultConnection" providerName="System.Data.SqlClient"                 connectionString="data source=(local); Initial Catalog=StoreDB; Integrated Security=SSPI;" />


<add name="StoreEntities" connectionString="metadata=res://*/Models.StoreDB.csdl|    res://*/Models.StoreDB.ssdl|res://*/Models.StoreDB.msl;provider=System.Data.SqlClient;provider connection     string=&quot;data source=(local);initial catalog=STOREDB;integrated     security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"     providerName="System.Data.EntityClient" />

【讨论】:

  • 谢谢你,先生!!!!为为什么使用 .edmx 文件的数据库优先方法无法正常工作而苦苦挣扎了一段时间。
【解决方案2】:

这里还有一些有用的细节:

我遇到了同样的问题。我正在使用 EDMX 文件进行数据库优先开发。如果你使用的是在 :base(“EDMXConnString”) 中添加 EDMX 文件时生成的连接字符串,你很可能会遇到这个问题。

我通过创建一个标准连接字符串来解决此问题,该字符串指向 ASP.NET 标识表所在的数据库。

<add name="MyConnString" connectionString="Data Source=server; Initial Catalog=db_name; User ID=user_id; Password=password; Connect Timeout=60;" providerName="System.Data.SqlClient" />

然后在 :base 中使用那个连接字符串,它成功了!

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

【讨论】:

    猜你喜欢
    • 2015-07-08
    • 2017-06-19
    • 2016-08-31
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多