Skip to content

v3.0.0

Latest

Choose a tag to compare

@danellalc danellalc released this 08 Aug 20:41

Two parts: an audit pass over the pipeline (six real bugs, each reproduced against a real model shape first, then fixed with a dedicated test), and two new opt-in capabilities requested directly off the back of that audit. Three of the six fixes are breaking because the previous behavior was either silently wrong or crashed with a raw, unnamed exception; the other three are pure fixes with no change to already-correct generated data. Neither new capability changes what an existing call generates.

Breaking

  • An optional (nullable) foreign key outside a dependency cycle is now actually populated, following the same NullRate as any other nullable column, instead of always staying null.
  • A required EF Core 8+ complex property (ComplexProperty, including a nested one) now throws UnsupportedPropertyException naming the full path, instead of being silently left at its CLR default.
  • Two entity types genuinely table-split into the same table now throw UnsupportedEntityTypeException instead of each getting its own, independently generated row.

Added

  • AUTOSEED001: a Roslyn analyzer bundled directly in the EFCore.AutoSeed package, flagging a required self-referencing foreign key directly in the IDE.
  • Entity<T>().SeedWith(rows): seeds a lookup table with an exact, literal set of rows instead of generated ones. AutoSeedAsync only for now.
  • autoseed diff (CLI) and AutoSeedDiff.Compare (library): diffs the seeding plan against a saved baseline, so a model change that alters what gets seeded shows up as an explicit, reviewable diff. Exits non-zero for use as a CI gate.

Fixed

  • An OwnsMany owned collection is now reported in SkippedEntityTypes instead of being silently, unexplainedly left empty.
  • An implicit many-to-many join table no longer crashes the entire seeding call with a raw TargetParameterCountException.
  • A SQL Server temporal table no longer crashes AutoSeedFastAsync.

Full changelog: https://github.com/danellalc/EFCore.AutoSeed/blob/main/CHANGELOG.md