【问题标题】:Move ASP.NET Identity store to EF Sql database将 ASP.NET 身份存储移动到 EF Sql 数据库
【发布时间】:2023-03-25 23:25:02
【问题描述】:

默认情况下,ASP.NET Identity 用户数据存储在 mdf 文件中。

我想将数据存储在 Sql 数据库中,以便将 web.config 中的默认连接字符串更改为基于 EF 的连接:

 <add name="DefaultConnection" connectionString="metadata=res://*/Models.StartifyModel.csdl|res://*/Models.StartifyModel.ssdl|res://*/Models.StartifyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MYPC\SQLEXPRESS;initial catalog=mydb;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

现在我一想注册用户就收到错误The entity type ApplicationUser is not part of the model for the current context.

我使用VS2013默认的MVC5项目模板。

【问题讨论】:

    标签: asp.net sql asp.net-mvc entity-framework asp.net-identity


    【解决方案1】:

    请尝试指定格式的连接字符串:

    <add name="DefaultConnection" connectionString="Data Source=127.0.0.1, 1433;Initial Catalog=YourDB;User Id=XXXX;Password=XXXXX;Asynchronous Processing=True;Encrypt=False;TrustServerCertificate=True;Persist Security Info=True" providerName="System.Data.SqlClient" />
    

    然后确保在 Models/IdentityModels.cs 中有

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

    【讨论】:

    • 这个连接字符串我还是有同样的问题。
    • 我创建了一个新项目,现在它可以工作了。我在 AccountController 中遇到了一些问题。
    • 如果您要更改为非 EF 连接字符串,根据您的示例,您将获得 "Keyword not supported: 'data source'",因为它不是 EF 连接的有效连接字符串(EF 数据库已在问题中指定)。这不是所问问题的正确答案,只会混淆问题。 请修改或删除。
    • 这就是重点。在此处切换到正常的数据连接可以使其正常工作。您仍然可以将您的数据库表拉入您的 EF 数据模型并通过该上下文获取它们。
    猜你喜欢
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    相关资源
    最近更新 更多