Skip to content

Commit

Permalink
Don't throw on missing store generated values in data seeds.
Browse files Browse the repository at this point in the history
Fixes #14161
  • Loading branch information
AndriySvyryd committed Jan 14, 2019
1 parent 74d1c6a commit 1cdd769
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/EFCore/Infrastructure/ModelValidator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -568,7 +568,8 @@ protected virtual void ValidateData([NotNull] IModel model)
|| value == null)
{
if (!property.IsNullable
&& (!property.RequiresValueGenerator()
&& ((!property.RequiresValueGenerator()
&& (property.ValueGenerated & ValueGenerated.OnAdd) == 0)
|| property.IsKey()))
{
throw new InvalidOperationException(CoreStrings.SeedDatumMissingValue(entityType.DisplayName(), property.Name));
Expand Down
20 changes: 20 additions & 0 deletions test/EFCore.Tests/Infrastructure/ModelValidatorTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -752,13 +752,33 @@ public virtual void Detects_missing_required_values_in_seeds()
modelBuilder.Model);
}

[Fact]
public virtual void Passes_on_missing_required_store_generated_values_in_seeds()
{
var modelBuilder = CreateModelBuilder();
modelBuilder.Entity<A>(
e =>
{
e.Property(a => a.P0).IsRequired().ValueGeneratedOnAddOrUpdate();
e.HasData(
new A
{
Id = 1
});
});

Validate(modelBuilder.Model);
}

[Fact]
public virtual void Detects_missing_key_values_in_seeds()
{
var entity = new NonSignedIntegerKeyEntity();
var modelBuilder = CreateModelBuilder();
modelBuilder.Entity<NonSignedIntegerKeyEntity>(e => e.HasData(entity));

Assert.Equal(ValueGenerated.OnAdd,
modelBuilder.Model.FindEntityType(typeof(NonSignedIntegerKeyEntity)).FindProperty(nameof(NonSignedIntegerKeyEntity.Id)).ValueGenerated);
VerifyError(
CoreStrings.SeedDatumDefaultValue(nameof(NonSignedIntegerKeyEntity), nameof(NonSignedIntegerKeyEntity.Id), entity.Id),
modelBuilder.Model);
Expand Down

0 comments on commit 1cdd769

Please sign in to comment.