protected override void OnModelCreating(ModelBuilder builder) { builder .Entity <User>() .Property(e => e.Gender) .HasConversion( v => v.ToString(), v => (Gender)Enum.Parse(typeof(Gender), v)); builder .Entity <Item_details>() .Property(e => e.Size) .HasConversion( v => v.ToString(), v => (Size)Enum.Parse(typeof(Size), v)); builder.Entity <OrderItem>(orderItem => { orderItem.HasKey(oi => new { oi.OrderId, oi.ItemId }); orderItem.HasOne(oi => oi.Item) .WithMany(i => i.OrderItems) .HasForeignKey(oi => oi.ItemId) .IsRequired(); orderItem.HasOne(oi => oi.Order) .WithMany(o => o.OrderItems) .HasForeignKey(oi => oi.OrderId) .IsRequired(); }); builder.Entity <UserItem>(UserItem => { UserItem.HasKey(ui => new { ui.UserId, ui.ItemId }); UserItem.HasOne(ui => ui.Item) .WithMany(i => i.UserItems) .HasForeignKey(ui => ui.ItemId) .IsRequired(); UserItem.HasOne(ui => ui.User) .WithMany(u => u.UserItems) .HasForeignKey(ui => ui.UserId) .IsRequired(); }); }