如何扩展应用程序用户以保存订单集合?

问题描述 投票:0回答:1

我正在尝试扩展应用程序用户(使用Code-First)来保存订单集合,但我收到错误。

我的订单类是

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; }
}

而且我收到以下错误:

QCMS.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);

    }
}
asp.net asp.net-mvc asp.net-identity
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.