【发布时间】:2015-03-23 17:46:05
【问题描述】:
我一直在使用 Azure 中托管的 Identity 2.0 构建一个 ASP.NET MVC5 Web 应用程序(使用 this article 和 this article 获取有关实施 Identity 2.0 的指导),并且遇到了一个我希望有人可以解决的问题帮忙。
我的问题最终源于需要添加额外的 SQL 表,并且不知道从数据上下文角度处理此问题的正确方法。 Identity 2.0 完全运行并托管在我的 Web 应用程序的 Azure SQL 中,下一个目标是创建一个新的自定义表来存储一些额外的数据。在我的模型中创建新类、添加脚手架和创建控制器都很容易,但我想不通的是数据上下文。
我最初所做的(这似乎工作了一段时间,直到尝试启用 Code-First 迁移并无意中删除了我的 Identity 2.0 表)是创建第二个从 DbContext 继承的数据上下文,因此(请忽略红色“WepApp”下的波浪线,将其更改为通用的东西以用于共享):
然后我在这个类的Controller中使用了这个新的数据上下文,如下所示:
虽然起初这有助于完成工作,但在尝试通过添加其他列来更新这个新表时,我无意中删除了我的 Identity 2.0 表,现在每当我尝试执行任何迁移操作时都会出现“多数据上下文”错误,阻止我重新创建它们。我的怀疑是,虽然我还不确定,但我应该将我的新表集成到与 Identity 2.0 表相同的数据上下文中,因为它们是同一数据库中的不同表。
任何人都可以提供任何建议以正确地将其他表添加到包含 Identity 2.0 系统的数据库中吗?特别是,从数据上下文的角度应该如何处理?我现在有点绝望,因为我完全失去了我的 Identity 2.0 后端表,并且正在努力重新创建它们。谢谢。
【问题讨论】:
-
这应该很简单,只需将
DbSet添加到您的ApplicationDbContext,然后添加将创建新表的迁移。我猜为您的CustomerProfileContext创建的迁移分析了数据库并确定您正在删除所有身份表。那么,您的问题是如何通过将表迁移到单个上下文来修复现有数据库,或者如何从头开始工作?
标签: c# asp.net sql-server entity-framework azure