Ejemplo n.º 1
0
        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();
            });
        }