Exemplo n.º 1
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity <Clan>(
                builder =>
            {
                builder.ToTable("Clan");

                builder.Property(clan => clan.Id).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired().ValueGeneratedNever();

                builder.Property(clan => clan.Name).IsRequired();

                builder.Property(clan => clan.Summary).IsRequired(false);

                builder.Property(clan => clan.OwnerId).HasConversion(invitationId => invitationId.ToGuid(), value => UserId.FromGuid(value)).IsRequired();

                builder.Ignore(clan => clan.Deleted);

                builder.HasMany(clan => clan.Members).WithOne().HasForeignKey(member => member.ClanId);

                builder.HasKey(clan => clan.Id);
            });

            modelBuilder.Entity <Clan>(
                builder =>
            {
                builder.ToTable("Clan");

                builder.Property(clan => clan.Id).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired().ValueGeneratedNever();

                builder.Property(clan => clan.Name).IsRequired();

                builder.Property(clan => clan.Summary).IsRequired(false);

                builder.Property(clan => clan.OwnerId).HasConversion(invitationId => invitationId.ToGuid(), value => UserId.FromGuid(value)).IsRequired();

                builder.HasMany(clan => clan.Members).WithOne().HasForeignKey(member => member.ClanId);

                builder.HasKey(clan => clan.Id);
            });

            modelBuilder.Entity <Member>(
                builder =>
            {
                builder.ToTable("Member");

                builder.Property(member => member.Id).HasConversion(memberId => memberId.ToGuid(), value => MemberId.FromGuid(value)).IsRequired().ValueGeneratedNever();

                builder.Property(member => member.UserId).HasConversion(userId => userId.ToGuid(), value => UserId.FromGuid(value)).IsRequired();
                builder.Property(member => member.ClanId).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired();

                builder.HasKey(member => member.Id);
            });

            modelBuilder.Entity <Candidature>(
                builder =>
            {
                builder.ToTable("Candidature");

                builder.Property(candidature => candidature.Id)
                .HasConversion(candidatureId => candidatureId.ToGuid(), value => CandidatureId.FromGuid(value))
                .IsRequired().ValueGeneratedNever();

                builder.Property(candidature => candidature.UserId).HasConversion(userId => userId.ToGuid(), value => UserId.FromGuid(value)).IsRequired();
                builder.Property(candidature => candidature.ClanId).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired();
                builder.HasKey(candidature => candidature.Id);
            });

            modelBuilder.Entity <Invitation>(
                builder =>
            {
                builder.ToTable("Invitation");

                builder.Property(invitation => invitation.Id)
                .HasConversion(invitationId => invitationId.ToGuid(), value => InvitationId.FromGuid(value))
                .IsRequired().ValueGeneratedNever();

                builder.Property(invitation => invitation.UserId).HasConversion(userId => userId.ToGuid(), value => UserId.FromGuid(value)).IsRequired();
                builder.Property(invitation => invitation.ClanId).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired();
                builder.HasKey(invitation => invitation.Id);
            });

            modelBuilder.Entity <Division>(
                builder =>
            {
                builder.ToTable("Division");

                builder.Property(division => division.Id)
                .HasConversion(divisionId => divisionId.ToGuid(), value => DivisionId.FromGuid(value))
                .IsRequired().ValueGeneratedNever();

                builder.Property(division => division.Name).IsRequired();

                builder.Property(division => division.Description).IsRequired(false);

                builder.Property(division => division.ClanId).HasConversion(clanId => clanId.ToGuid(), value => ClanId.FromGuid(value)).IsRequired();

                builder.Ignore(division => division.Members);

                builder.HasKey(division => division.Id);
            });
        }