gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 01:53:48 25 4
gpt4 key购买 nike

我一直在构建一个在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com