Skip to content

Commit 30c5484

Browse files
[master] Update dependencies from dotnet/efcore (#20107)
* Update dependencies from https://github.com/dotnet/efcore build 20200324.2 - Microsoft.EntityFrameworkCore.Tools - 5.0.0-preview.3.20174.2 - Microsoft.EntityFrameworkCore.SqlServer - 5.0.0-preview.3.20174.2 - dotnet-ef - 5.0.0-preview.3.20174.2 - Microsoft.EntityFrameworkCore - 5.0.0-preview.3.20174.2 - Microsoft.EntityFrameworkCore.InMemory - 5.0.0-preview.3.20174.2 - Microsoft.EntityFrameworkCore.Relational - 5.0.0-preview.3.20174.2 - Microsoft.EntityFrameworkCore.Sqlite - 5.0.0-preview.3.20174.2 * Update dependencies from https://github.com/dotnet/efcore build 20200324.3 - Microsoft.EntityFrameworkCore.Tools - 5.0.0-preview.3.20174.3 - Microsoft.EntityFrameworkCore.SqlServer - 5.0.0-preview.3.20174.3 - dotnet-ef - 5.0.0-preview.3.20174.3 - Microsoft.EntityFrameworkCore - 5.0.0-preview.3.20174.3 - Microsoft.EntityFrameworkCore.InMemory - 5.0.0-preview.3.20174.3 - Microsoft.EntityFrameworkCore.Relational - 5.0.0-preview.3.20174.3 - Microsoft.EntityFrameworkCore.Sqlite - 5.0.0-preview.3.20174.3 * Update dependencies from https://github.com/dotnet/efcore build 20200324.4 - Microsoft.EntityFrameworkCore.Tools - 5.0.0-preview.3.20174.4 - Microsoft.EntityFrameworkCore.SqlServer - 5.0.0-preview.3.20174.4 - dotnet-ef - 5.0.0-preview.3.20174.4 - Microsoft.EntityFrameworkCore - 5.0.0-preview.3.20174.4 - Microsoft.EntityFrameworkCore.InMemory - 5.0.0-preview.3.20174.4 - Microsoft.EntityFrameworkCore.Relational - 5.0.0-preview.3.20174.4 - Microsoft.EntityFrameworkCore.Sqlite - 5.0.0-preview.3.20174.4 * Update dependencies from https://github.com/dotnet/efcore build 20200324.5 - Microsoft.EntityFrameworkCore.Tools - 5.0.0-preview.3.20174.5 - Microsoft.EntityFrameworkCore.SqlServer - 5.0.0-preview.3.20174.5 - dotnet-ef - 5.0.0-preview.3.20174.5 - Microsoft.EntityFrameworkCore - 5.0.0-preview.3.20174.5 - Microsoft.EntityFrameworkCore.InMemory - 5.0.0-preview.3.20174.5 - Microsoft.EntityFrameworkCore.Relational - 5.0.0-preview.3.20174.5 - Microsoft.EntityFrameworkCore.Sqlite - 5.0.0-preview.3.20174.5 * React to EF Migrations breaking changes Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: AndriySvyryd <[email protected]>
1 parent 196f448 commit 30c5484

File tree

4 files changed

+64
-33
lines changed

4 files changed

+64
-33
lines changed

eng/Version.Details.xml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,33 +29,33 @@
2929
<Uri>https://github.com/dotnet/aspnetcore-tooling</Uri>
3030
<Sha>dcbab464643d971765e77562d2d0854c6ae112f7</Sha>
3131
</Dependency>
32-
<Dependency Name="dotnet-ef" Version="5.0.0-preview.3.20170.2">
32+
<Dependency Name="dotnet-ef" Version="5.0.0-preview.3.20174.5">
3333
<Uri>https://github.com/dotnet/efcore</Uri>
34-
<Sha>ac4633559b117b92156d75f07b7ef81dc920b4fd</Sha>
34+
<Sha>21b9a35db594f7a383e855f922babbe54b3d38c5</Sha>
3535
</Dependency>
36-
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.0-preview.3.20170.2">
36+
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.0-preview.3.20174.5">
3737
<Uri>https://github.com/dotnet/efcore</Uri>
38-
<Sha>ac4633559b117b92156d75f07b7ef81dc920b4fd</Sha>
38+
<Sha>21b9a35db594f7a383e855f922babbe54b3d38c5</Sha>
3939
</Dependency>
40-
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="5.0.0-preview.3.20170.2">
40+
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="5.0.0-preview.3.20174.5">
4141
<Uri>https://github.com/dotnet/efcore</Uri>
42-
<Sha>ac4633559b117b92156d75f07b7ef81dc920b4fd</Sha>
42+
<Sha>21b9a35db594f7a383e855f922babbe54b3d38c5</Sha>
4343
</Dependency>
44-
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.0-preview.3.20170.2">
44+
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.0-preview.3.20174.5">
4545
<Uri>https://github.com/dotnet/efcore</Uri>
46-
<Sha>ac4633559b117b92156d75f07b7ef81dc920b4fd</Sha>
46+
<Sha>21b9a35db594f7a383e855f922babbe54b3d38c5</Sha>
4747
</Dependency>
48-
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0-preview.3.20170.2">
48+
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0-preview.3.20174.5">
4949
<Uri>https://github.com/dotnet/efcore</Uri>
50-
<Sha>ac4633559b117b92156d75f07b7ef81dc920b4fd</Sha>
50+
<Sha>21b9a35db594f7a383e855f922babbe54b3d38c5</Sha>
5151
</Dependency>
52-
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0-preview.3.20170.2">
52+
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0-preview.3.20174.5">
5353
<Uri>https://github.com/dotnet/efcore</Uri>
54-
<Sha>ac4633559b117b92156d75f07b7ef81dc920b4fd</Sha>
54+
<Sha>21b9a35db594f7a383e855f922babbe54b3d38c5</Sha>
5555
</Dependency>
56-
<Dependency Name="Microsoft.EntityFrameworkCore" Version="5.0.0-preview.3.20170.2">
56+
<Dependency Name="Microsoft.EntityFrameworkCore" Version="5.0.0-preview.3.20174.5">
5757
<Uri>https://github.com/dotnet/efcore</Uri>
58-
<Sha>ac4633559b117b92156d75f07b7ef81dc920b4fd</Sha>
58+
<Sha>21b9a35db594f7a383e855f922babbe54b3d38c5</Sha>
5959
</Dependency>
6060
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="5.0.0-preview.3.20170.1" CoherentParentDependency="Microsoft.AspNetCore.Razor.Language">
6161
<Uri>https://github.com/dotnet/extensions</Uri>

eng/Versions.props

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,13 @@
139139
<MicrosoftExtensionsPrimitivesPackageVersion>5.0.0-preview.3.20170.1</MicrosoftExtensionsPrimitivesPackageVersion>
140140
<MicrosoftInternalExtensionsRefsPackageVersion>5.0.0-preview.3.20170.1</MicrosoftInternalExtensionsRefsPackageVersion>
141141
<!-- Packages from dotnet/efcore -->
142-
<dotnetefPackageVersion>5.0.0-preview.3.20170.2</dotnetefPackageVersion>
143-
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>5.0.0-preview.3.20170.2</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
144-
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>5.0.0-preview.3.20170.2</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
145-
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>5.0.0-preview.3.20170.2</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
146-
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>5.0.0-preview.3.20170.2</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
147-
<MicrosoftEntityFrameworkCoreToolsPackageVersion>5.0.0-preview.3.20170.2</MicrosoftEntityFrameworkCoreToolsPackageVersion>
148-
<MicrosoftEntityFrameworkCorePackageVersion>5.0.0-preview.3.20170.2</MicrosoftEntityFrameworkCorePackageVersion>
142+
<dotnetefPackageVersion>5.0.0-preview.3.20174.5</dotnetefPackageVersion>
143+
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>5.0.0-preview.3.20174.5</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
144+
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>5.0.0-preview.3.20174.5</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
145+
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>5.0.0-preview.3.20174.5</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
146+
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>5.0.0-preview.3.20174.5</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
147+
<MicrosoftEntityFrameworkCoreToolsPackageVersion>5.0.0-preview.3.20174.5</MicrosoftEntityFrameworkCoreToolsPackageVersion>
148+
<MicrosoftEntityFrameworkCorePackageVersion>5.0.0-preview.3.20174.5</MicrosoftEntityFrameworkCorePackageVersion>
149149
<!-- Packages from dotnet/aspnetcore-tooling -->
150150
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>5.0.0-preview.3.20170.3</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
151151
<MicrosoftAspNetCoreRazorLanguagePackageVersion>5.0.0-preview.3.20170.3</MicrosoftAspNetCoreRazorLanguagePackageVersion>

src/Middleware/Diagnostics.EntityFrameworkCore/src/DatabaseErrorPageMiddleware.cs

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
using Microsoft.EntityFrameworkCore;
1414
using Microsoft.EntityFrameworkCore.Diagnostics;
1515
using Microsoft.EntityFrameworkCore.Infrastructure;
16+
using Microsoft.EntityFrameworkCore.Metadata;
17+
using Microsoft.EntityFrameworkCore.Metadata.Conventions;
18+
using Microsoft.EntityFrameworkCore.Metadata.Conventions.Infrastructure;
1619
using Microsoft.EntityFrameworkCore.Migrations;
1720
using Microsoft.EntityFrameworkCore.Storage;
1821
using Microsoft.Extensions.Logging;
@@ -138,13 +141,36 @@ public virtual async Task Invoke(HttpContext httpContext)
138141
var migrationsAssembly = context.GetService<IMigrationsAssembly>();
139142
var modelDiffer = context.GetService<IMigrationsModelDiffer>();
140143

144+
var snapshotModel = migrationsAssembly.ModelSnapshot?.Model;
145+
if (snapshotModel is IConventionModel conventionModel)
146+
{
147+
var conventionSet = context.GetService<IConventionSetBuilder>().CreateConventionSet();
148+
149+
var typeMappingConvention = conventionSet.ModelFinalizingConventions.OfType<TypeMappingConvention>().FirstOrDefault();
150+
if (typeMappingConvention != null)
151+
{
152+
typeMappingConvention.ProcessModelFinalizing(conventionModel.Builder, null);
153+
}
154+
155+
var relationalModelConvention = conventionSet.ModelFinalizedConventions.OfType<RelationalModelConvention>().FirstOrDefault();
156+
if (relationalModelConvention != null)
157+
{
158+
snapshotModel = relationalModelConvention.ProcessModelFinalized(conventionModel);
159+
}
160+
}
161+
162+
if (snapshotModel is IMutableModel mutableModel)
163+
{
164+
snapshotModel = mutableModel.FinalizeModel();
165+
}
166+
141167
// HasDifferences will return true if there is no model snapshot, but if there is an existing database
142168
// and no model snapshot then we don't want to show the error page since they are most likely targeting
143169
// and existing database and have just misconfigured their model
144170

145171
var pendingModelChanges
146172
= (!databaseExists || migrationsAssembly.ModelSnapshot != null)
147-
&& modelDiffer.HasDifferences(migrationsAssembly.ModelSnapshot?.Model, context.Model);
173+
&& modelDiffer.HasDifferences(snapshotModel?.GetRelationalModel(), context.Model.GetRelationalModel());
148174

149175
var pendingMigrations
150176
= (databaseExists

src/Middleware/Diagnostics.EntityFrameworkCore/test/FunctionalTests/TestModels/BloggingContextWithMigrations.cs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,25 +21,29 @@ public static BloggingContextWithMigrations CreateWithoutExternalServiceProvider
2121
return new BloggingContextWithMigrations(options);
2222
}
2323

24+
private static void BuildSnapshotModel(ModelBuilder builder)
25+
{
26+
builder.Entity("Blogging.Models.Blog", b =>
27+
{
28+
b.Property<int>("BlogId").ValueGeneratedOnAdd();
29+
b.Property<string>("Name");
30+
b.HasKey("BlogId");
31+
});
32+
}
33+
2434
[DbContext(typeof(BloggingContextWithMigrations))]
2535
public class BloggingContextWithMigrationsModelSnapshot : ModelSnapshot
2636
{
27-
protected override void BuildModel(ModelBuilder builder)
28-
{
29-
builder.Entity("Blogging.Models.Blog", b =>
30-
{
31-
b.Property<int>("BlogId").ValueGeneratedOnAdd();
32-
b.Property<string>("Name");
33-
b.HasKey("BlogId");
34-
});
35-
}
37+
protected override void BuildModel(ModelBuilder modelBuilder)
38+
=> BuildSnapshotModel(modelBuilder);
3639
}
3740

3841
[DbContext(typeof(BloggingContextWithMigrations))]
3942
[Migration("111111111111111_MigrationOne")]
4043
public class MigrationOne : Migration
4144
{
42-
public override IModel TargetModel => new BloggingContextWithMigrationsModelSnapshot().Model;
45+
protected override void BuildTargetModel(ModelBuilder modelBuilder)
46+
=> BuildSnapshotModel(modelBuilder);
4347

4448
protected override void Up(MigrationBuilder migrationBuilder)
4549
{
@@ -62,7 +66,8 @@ protected override void Down(MigrationBuilder migrationBuilder)
6266
[Migration("222222222222222_MigrationTwo")]
6367
public class MigrationTwo : Migration
6468
{
65-
public override IModel TargetModel => new BloggingContextWithMigrationsModelSnapshot().Model;
69+
protected override void BuildTargetModel(ModelBuilder modelBuilder)
70+
=> BuildSnapshotModel(modelBuilder);
6671

6772
protected override void Up(MigrationBuilder migrationBuilder)
6873
{ }

0 commit comments

Comments
 (0)