相关疑难解决方法(0)

EntityType'IdentityUserLogin'没有定义键.定义此EntityType的键

我正在使用Entity Framework Code First和MVC 5.当我使用个人用户帐户身份验证创建我的应用程序时,我获得了一个帐户控制器以及所有必需的类和代码,以使Indiv用户帐户身份验证工作.

已经存在的代码包括:

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

    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}
Run Code Online (Sandbox Code Playgroud)

但后来我继续使用代码创建了我自己的上下文,所以我现在也有以下内容:

public class DXContext : DbContext
{
    public DXContext() : base("DXContext")
    {

    }

    public DbSet<ApplicationUser> Users { get; set; }
    public DbSet<IdentityRole> Roles { get; set; }
    public DbSet<Artist> Artists { get; set; }
    public DbSet<Paintings> Paintings { get; set; }        
}
Run Code Online (Sandbox Code Playgroud)

最后,我有以下种子方法为我添加一些数据,同时开发:

protected override void Seed(DXContext context) …
Run Code Online (Sandbox Code Playgroud)

seeding ef-code-first asp.net-mvc-5

98
推荐指数
4
解决办法
10万
查看次数

实体类型'Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin <string>'需要定义键

我有一个使用EF7的ASP.NET5 MVC应用程序.它到目前为止工作得很好,我能够在数据库中添加迁移和持久数据.现在,在将Identity添加到我的数据层项目后,我在尝试添加新迁移时遇到此错误:

实体类型'Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin'需要定义一个键

我的上下文源自IdentityDbContext:

public class ASSWebApiContext : IdentityDbContext<AppUser>
Run Code Online (Sandbox Code Playgroud)

AppUser类:

using Microsoft.AspNet.Identity.EntityFramework;
using System;

namespace ASS.DomainDataModel.Models
{
    public class AppUser : IdentityUser
    {
        public string AppUserId { get; set; }
        public DateTime FirstFlight { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

project.json

{
  "version": "1.0.0-*",
  "description": "ASS.DomainDataModel Class Library",
  "authors": [ "xxxx" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "frameworks": {
    "dnx451": {
      "dependencies": {
      }
    },
    "dnxcore50": {
      "dependencies": {
      }
    }
  },

  "dependencies": {
    "ASS.DomainClasses": "1.0.0-*",
    "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final", …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-identity entity-framework-core

21
推荐指数
1
解决办法
1万
查看次数

实体类型'IdentityUserLogin <string>'需要定义主键

我在linux上使用dotnet core 1.1,当我想从我的常规dbContext中分离identityContext时,我遇到问题,每当我在startup.cs中运行以下行时 - > configure:

//... some other services
using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope())
{
    serviceScope.ServiceProvider.GetService<ApplicationDbContext>().Database.Migrate();
    //running other database.migrations here + seeding data. But it is the line above that causes problems
Run Code Online (Sandbox Code Playgroud)

因此,该行抛出异常:实体类型'IdentityUserLogin'需要定义主键

我根本不明白这一点,为什么我的工作是给IdentityUserLogin一个主键?它是一个第三方类,我甚至没有触及它.我有以下简单的设置:

namespace EsportshubApi.Models
{
    public class ApplicationDbContext :  IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
        {
        }

        public ApplicationDbContext()
        {

        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);


        }
    }
}
Run Code Online (Sandbox Code Playgroud)

和applicationUser:

namespace EsportshubApi.Models.Entities
{

    public class ApplicationUser : IdentityUser
    {
        public ApplicationUser() { }

        public …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework asp.net-identity asp.net-core

19
推荐指数
3
解决办法
2万
查看次数