2017-12-23 2 views
0

주문 모음을 보관하기 위해 응용 프로그램 사용자 (코드 우선 사용)를 연장하려고하는데 오류가 발생합니다.응용 프로그램 사용자를 확장하여 주문 모음을 보관하는 방법은 무엇입니까?

내 주문 클래스는

public class Order 
{ 
    public Order() 
    { 
     OrderDetails = new HashSet<OrderDetails>(); 
    } 

    public int ID { get; set; } 
    public DateTime OrderDate { get; set; } 
    public string UserId { get; set; } 
    public bool IsDelivered { get; set; } 
    public bool IsReturned { get; set; } 

    public virtual ApplicationUser User { get; set; } 
    public virtual ICollection<OrderDetails> OrderDetails { get; set; } 
} 

내가이

public class ApplicationUser : IdentityUser 
{ 
    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) 
    { 
     // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType 
     var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 
     // Add custom user claims here 
     return userIdentity; 
    } 

    public string FirstName { get; set; } 
    public string LastName { get; set; } 

    public string CompanyName { get; set; } 
    public string Profession { get; set; } 
    public string TaxAuthority { get; set; } 
    public string TaxNumber { get; set; } 
    public string Address { get; set; } 
    public string PostalCode { get; set; } 
    public string City { get; set; } 
    public string Region { get; set; } 
    public string Country { get; set; } 
    public string Phone { get; set; } 
    public string MobilePhone { get; set; } 
    public bool NewsLetterSubscribe { get; set; } = false; 
    public DateTime TimeStamp { get; set; } = DateTime.Now; 

    public ICollection<Order> Orders { get; set; } 
} 

같은 응용 프로그램 사용자를 확장하기 위해 노력하고있어 그리고 난 다음 오류 받고 있어요 :

QCM을합니다. Models.IdentityUserLogin :: EntityType 'IdentityUserLogin'에 정의 된 키가 없습니다. 이 EntityType의 키를 정의하십시오.

QCMS.Models.IdentityUserRole :: EntityType 'IdentityUserRole'에 정의 된 키가 없습니다. 이 EntityType의 키를 정의하십시오.

IdentityUserLogins : EntityType : EntitySet 'IdentityUserLogins'은 정의 된 키가없는 'IdentityUserLogin'유형을 기반으로합니다.

IdentityUserRoles : EntityType : EntitySet 'IdentityUserRoles'는 정의 된 키가없는 'IdentityUserRole'유형을 기반으로합니다.

이 문제를 해결할 수 있도록 도와주세요.

업데이트 : 이dB 컨텍스트를 사용하고

. 개인 사용자 계정 (프로젝트가 처음 생성 될 때)에 제공된 것이고, 내 프로젝트의 다른 모든 데이터베이스 클래스에 대해 "qvModel"이라는 두 번째 이름입니다.

public partial class qvModel : DbContext 
{ 
    public qvModel() 
     : base("name=qvModel") 
    { 
    } 
    //APPSETTINGS 
    public virtual DbSet<AdminLog> AdminLog { get; set; } 
    public virtual DbSet<WebLog> WebLog { get; set; } 
    //LANGUAGES 
    public virtual DbSet<Language> Languages { get; set; } 

    . 
    . 
    . 
    public virtual DbSet<Order> Orders { get; set; } 
    public virtual DbSet<OrderDetails> OrderDetails { get; set; } 


    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 

     // Precision attribute for decimals 
     Precision.ConfigureModelBuilder(modelBuilder); 

     modelBuilder.Entity<Language>() 
      .HasMany(e => e.Brochures) 
      .WithRequired(e => e.Language) 
      .WillCascadeOnDelete(true); 
     . 
     . 
     . 

     modelBuilder.Entity<Order>() 
      .HasMany(c => c.OrderDetails) 
      .WithRequired(c => c.Order) 
      .WillCascadeOnDelete(true); 

     modelBuilder.Entity<ApplicationUser>() 
      .HasMany(c => c.Orders) 
      .WithRequired(c => c.User) 
      .WillCascadeOnDelete(true); 

     base.OnModelCreating(modelBuilder); 

    } 
} 
+0

IdentityUserLogin 유형은 어디에 있습니까? – Haytam

+0

내 프로젝트에 IdentityUserLogin, IdentityUserRole 유형이 없습니다. 내 데이터베이스에 두 개의 다른 컨텍스트를 사용하고 있습니다. 첫 번째는 프로젝트를 만들 때 개별 사용자 계정 인증을 제공하고 두 번째 클래스는 내 클래스의 컨텍스트입니다. – Stelios

답변

0

매우 간단한 해결책을 발견했습니다. 이 솔루션은 이러한 변경 후

base.OnModelCreating(modelBuilder); 

을 OnModelCreating에서 나는 또한 다음 줄을 잃어버린이

public class qvModel : IdentityDbContext<ApplicationUser> 
{ 
    public qvModel() 
     : base("name=qvModel") 
    { 
    } 

처럼 IdentityDbContext에서 상속하는 것입니다 내 이동이 작동하고 내가 언급 한 오류를 받고 중단했다.

관련 문제