c# - 将新的 SQL 表添加到 Identity 2.0 数据上下文

标签 c# asp.net sql-server entity-framework azure

我一直在构建一个在 Azure 中托管的具有 Identity 2.0 的 ASP.NET MVC5 Web 应用程序(使用 this articlethis article 作为实现 Identity 2.0 的指南),并且遇到了一个问题,我希望有人可以解决这个问题帮忙。

我的问题最终源于需要添加额外的 SQL 表,并且不知道从数据上下文角度处理此问题的正确方法。随着 Identity 2.0 完全运行并托管在我的 Web 应用程序的 Azure SQL 中,下一个目标是创建一个新的自定义表来存储一些附加数据。在我的模型中创建新类、添加脚手架和创建 Controller 都非常简单,但我无法弄清楚数据上下文。

我最初所做的(这似乎工作了一段时间,直到尝试启用代码优先迁移并无意中删除了我的 Identity 2.0 表)是创建继承自 DbContext 的第二个数据上下文,因此(请忽略红色“WepApp”下的花体,出于共享目的将其更改为通用内容):

Please ignore red squiggles under "WebApp". Changed this to something generic for purpose of sharing.

然后我在此类的 Controller 中使用了这个新的数据上下文,如下所示:

enter image description here

虽然这首先可以完成工作,但当尝试通过添加其他列来更新这个新表时,我无意中删除了我的 Identity 2.0 表,现在每当我尝试执行任何迁移操作时都会出现“多个数据上下文”错误,阻止我重新创建它们。尽管我还不太确定,但我怀疑我应该将新表集成到与 Identity 2.0 表相同的数据上下文中,因为它们是同一数据库中的不同表。

任何人都可以提供有关正确添加附加表到包含 Identity 2.0 系统的数据库的建议吗?特别是,从数据上下文的角度应该如何处理?我现在有点绝望,因为我完全丢失了 Identity 2.0 后端表,并且正在努力重新创建它们。谢谢。

最佳答案

认为除了“DefaultConnection”之外,您还需要添加 DbContext(请注意,您需要在 webconfig 文件中添加另一个 connectionString):

public class CustProfileContext : DbContext
{
    public DbSet<CustProfile> CustProfiles { get; set; }
}

或者,将 DbSet 语句移至 ApplicationDbContext,如下所示:

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



    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }

    public System.Data.Entity.DbSet<WebApp.Models.CustProfile> CustProfiles { get; set; }


}

完成其中一项操作后,添加新的迁移并查看 configuration.cs 文件以确保 Entity Framework 正确添加表。

关于c# - 将新的 SQL 表添加到 Identity 2.0 数据上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29216900/

相关文章:

c# - AssemblyBuilder.SetCustomAttribute 中字节数组的用途是什么

c# - 如何过滤 DataGridView?

sql-server - ANSI JOIN 与非 ANSI JOIN 查询的性能是否会有所不同?

asp.net - 将 json 反序列化为匿名类型列表

c# - 用于表单例份验证的 Web.Config,匿名用户不可用的位置

SQL Server 存储过程包含SQL 或调用查看

sql-server - 将数据从 Azure SQL 数据库 ETL 到 Azure SQL 数据仓库的推荐工具?

C# int.TryParse 也许吧?

c# - HTTP 错误 500.32 - 将独立的 .Net Core 3.1 应用程序部署到 Azure 后,ANCM 无法加载 dll

css - 修改 css 搜索工具栏