EntityFramework-Reverse-POCO-Code-First-Generator
EntityFramework-Reverse-POCO-Code-First-Generator copied to clipboard
Add option to move poco configuration into OnModelCreating
Thanks to Thad Lowry for this suggestion.
Add an option so we can generated poco configuration code from separate classes into OnModelCreating.
From this:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfiguration(new ManyToManyConfiguration());
}
// ManyToMany
public partial class ManyToManyConfiguration : IEntityTypeConfiguration<ManyToMany>
{
public void Configure(EntityTypeBuilder<ManyToMany> builder)
{
builder.ToTable("ManyToMany", "dbo");
builder.HasKey(x => new { x.ManyId, x.ToManyId }).HasName("PK_ManyToMany").IsClustered();
builder.Property(x => x.ManyId).HasColumnName(@"ManyId").HasColumnType("int").IsRequired().ValueGeneratedNever();
builder.Property(x => x.ToManyId).HasColumnName(@"ToManyId").HasColumnType("int").IsRequired().ValueGeneratedNever();
// Foreign keys
builder.HasOne(a => a.Many).WithMany(b => b.ManyToManies).HasForeignKey(c => c.ManyId).OnDelete(DeleteBehavior.ClientSetNull).HasConstraintName("FK_Many_ToMany_ManyId");
builder.HasOne(a => a.ToMany).WithMany(b => b.ManyToManies).HasForeignKey(c => c.ToManyId).OnDelete(DeleteBehavior.ClientSetNull).HasConstraintName("FK_Many_ToMany_ToManyId");
InitializePartial(builder);
}
partial void InitializePartial(EntityTypeBuilder<ManyToMany> builder);
}
to this:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ManyToMany>(entity =>
{
entity.HasKey(e => new { e.ManyId, e.ToManyId });
entity.HasComment("This is a Many to Many");
entity.HasOne(d => d.Many)
.WithMany(p => p.ManyToMany)
.HasForeignKey(d => d.ManyId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_Many_ToMany_ManyId");
entity.HasOne(d => d.ToMany)
.WithMany(p => p.ManyToMany)
.HasForeignKey(d => d.ToManyId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_Many_ToMany_ToManyId");
});
. . .
}