【问题标题】:ASP.NET 4.5, MVC 5, EF Db first with Identity T4 template, unable to find package NuGetASP.NET 4.5、MVC 5、EF Db 首先使用 Identity T4 模板,找不到包 NuGet
【发布时间】:2014-12-07 07:38:49
【问题描述】:

我有 VS 2013,更新 4,如果相关的话。

ASP Identity 仅支持代码优先,但我有一个现有的数据库。因此,我正在尝试首先使用 ASP Identity 为 EF db 安装 T4 模板,遵循以下说明 https://github.com/cbfrank/AspNet.Identity.EntityFramework

已成功安装 EF Power Tools。下一步是从 NuGet 安装 T4 模板:https://www.nuget.org/packages/cb.AspNet.Identity.EntityFramework.T4/

但是在尝试从 NuGet 控制台安装时,出现错误:

“安装包:找不到包 cb.AspNet.Identity.EntityFramework.T4”

我还没有找到任何关于如何手动安装软件包的说明。

请告知,如何安装此 T4 模板或建议其他解决方案 - 如何将 ASP Identity 与现有数据库一起使用。

谢谢。


更新:

我已按照 Daniel Eagle 博客中的说明进行操作(请参阅我对 url 的评论,系统不允许粘贴超链接) 但是,当我尝试运行应用程序并注册一个新用户时,出现了异常:

“支持 'ApplicationDbContext' 上下文的模型在创建数据库后发生了变化。考虑使用 Code First 迁移来更新数据库

异常详细信息:System.InvalidOperationException:支持“ApplicationDbContext”上下文的模型自创建数据库以来已更改。考虑使用 Code First 迁移来更新数据库。

来源错误:

第 153 行:{ 第 154 行:var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; 第 155 行:var result = await UserManager.CreateAsync(user, model.Password); 第 156 行:如果(结果。成功) 第 157 行:{

源文件:c:\Users\Valeriya\Documents\Visual Studio 2013\Projects\Bulk_mailer_6\Bulk_mailer_6\Controllers\AccountController.cs 行:155 "

【问题讨论】:

  • 谢谢你,Simranjeet,我检查了建议的帖子,并按照 Daniel Eagle 在他的博客中提供的说明进行操作:danieleagle.com/blog/2014/05/… 但是,当我尝试运行应用程序并注册一个新的用户,弹出异常。
  • 当数据库与您的应用程序中定义的类不同步时,通常会发生该错误。解决方案是使用迁移并使数据库与定义的类和属性同步。希望这会有所帮助!。
  • 好的,我现在明白了,谢谢。不过,我已经放弃并先应用代码。我认为,将我的示例数据重新插入 db 所需的时间会更少,然后先对 db 进行故障排除。

标签: asp.net-mvc asp.net-identity-2 asp.net-mvc-5.2


【解决方案1】:

您遇到的错误表明您的实体在 Entity Framework Code First 创建数据库后发生了更改。您可以手动删除数据库或使用Code First Migrations 作为例外提示。

【讨论】:

  • 对。我的问题是,数据库从来没有首先由代码创建。按照danieleagle.com/blog/2014/05/… 上的说明,我试图欺骗 EF 并将其指向现有数据库,但遇到了该异常。我试图启用 Code First 迁移,它抱怨我在我的程序集中有不止一次的上下文。所以,我为这两种情况启用了它。当我运行它时,我仍然看到相同的异常。毕竟,也许我应该先选择 Code...
  • @Lera 所以你使用的是数据库优先,对吧?然后,您可以从数据库中重新生成 .edmx 架构并检查它是否解决了问题。顺便问一下,为什么你有多个DbContexts?您有多个数据库吗?
  • 是的,我尝试将 Database First 与 ASP Identity 结合使用。通过没有成功。是的,这就是我所做的 - 从现有数据库创建 .edmx(按照上述博客的说明)。不,我只有 1 个数据库,但我认为因为我手动替换了目标数据库,EF 仍然指向那里某处的初始默认身份数据库。不过我已经放弃了这个想法,并首先使用代码进行开发......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-18
  • 1970-01-01
  • 2019-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多