如何使用Asp.Net.Identity和Entity Framework 6在Asp.Net Core 2.0 Target Framework 4.6.1中设置身份?

时间:2017-11-14 06:53:04

标签: c# asp.net .net entity-framework asp.net-core-2.0

我正在将Asp.Net中实施的项目迁移到Asp.Net Core 2.0 target framework 4.6.1。我想继续在EF6中使用Asp.Net.Identityasp.net core,因为身份核心和实体框架核心发生了重大变化。

我彻底浏览了各种官方文档(Core and EF6Identity in Core),在堆栈上搜索了类似(但不完全正确)的questions,但我仍感到困惑,无法找到起点。

无论如何,到目前为止我能够实现的是:

  • Web项目(具有Startup.cs)位于以4.6.1框架为目标的核心。
  • 身份设置和上下文定义完全在另一个程序集/项目中,这是一个4.6.1类库。
  • 我在Core Startup.cs中导入并注册我以前版本的Identity和EF6时遇到了不同的版本。

甚至可能吗?我已经使用过许多类似的变体,我在研究过程中收集过,但没有帮助:AddIdentity<ApplicationUser, ApplicationRole>().AddEntityFrameworkStore<Context>()

2 个答案:

答案 0 :(得分:1)

当我从.NET Core 1迁移到.NET Core 2时,我遇到的一个重大变化是删除了使用INT作为主键数据类型的能力。

我必须将此https://github.com/aspnet/Identity/blob/patch/1.1.3/src/Microsoft.AspNetCore.Identity.EntityFrameworkCore/IdentityEntityFrameworkBuilderExtensions.cs添加到我的项目中,以便我的旧版EF数据库全部使用INT作为PK在.NET Core 2中工作。

你能详细说明你的问题吗?

答案 1 :(得分:0)

有一个nuget包MR.AspNet.Identity.EntityFramework6 可以在ASP.NET Core项目中使用EF 6 + ASP.NET Core Identity。

有关github的更多信息。