0

I have StoreUser identity in my ASP.NET Web API project and StoreDbContext Where I have Product model and DbSet

this is my Product

public class Product
{
    public int Id { get; set; }
    public string CodeName { get; set; }
    public decimal Cost { get; set; }
    public decimal Discount { get; set; }
    public int SoldCount { get; set; }
    public string SellerId { get; set; }
    public virtual StoreUser Seller { get; set; }
    public virtual List<ProductImage> Images { get; set; }
    public virtual List<Category> Categories { get; set; }
    public virtual List<ProductText> Texts { get; set; }
}

this is my StoreDbContext

public class StoreDbContext: DbContext
{
    public StoreDbContext() : base("MyCoupon")
    {
        Database.SetInitializer(new StoreDbInitialier());
    }

    public DbSet<Product> Products { get; set; }
    public DbSet<ProductText> ProductTexts { get; set; }
    public DbSet<ProductImage> Images { get; set; }
    public DbSet<CategoryText> CategoryTexts { get; set; }
    public DbSet<Category> Categories { get; set; }
    public DbSet<Language> Languages { get; set; }
}

and this is my StoreUserclass

public class StoreUser : IdentityUser
{
    public virtual List<Product> Products { get; set; } = new List<Product>();
}

so user can have products

but when I want to add them with

[Authorize(Roles = "Seller")]
    public IHttpActionResult Post(Product product)
    {
        var userId = HttpContext.Current.User.Identity.GetUserId();
        var userManager = HttpContext.Current.GetOwinContext().GetUserManager<StoreUserManager>();

        var user = userManager.FindById(userId);
        product.Seller = user;
        _db.Products.Add(product);
        _db.SaveChanges();
        return Ok(product);
    }

I am getting error

error

Aren Hovsepyan
  • 1,947
  • 2
  • 17
  • 45

1 Answers1

0

you need to call, on your StoreDbContext class

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
}
Overmachine
  • 1,723
  • 3
  • 15
  • 27