1414using NetTopologySuite ;
1515using NetTopologySuite . Geometries ;
1616using Xunit . Sdk ;
17+ using static Microsoft . EntityFrameworkCore . DbLoggerCategory ;
1718
1819// ReSharper disable InconsistentNaming
1920// ReSharper disable UnusedAutoPropertyAccessor.Local
@@ -547,16 +548,6 @@ private class EntityWithNullableEnumType
547548 public Days ? Day { get ; set ; }
548549 }
549550
550- private class BaseEntityWithIntDiscriminator
551- {
552- public int Id { get ; set ; }
553- }
554-
555- private class DerivedEntityWithIntDiscriminator : BaseEntityWithIntDiscriminator
556- {
557- public string Name { get ; set ; }
558- }
559-
560551 private class ManyToManyLeft
561552 {
562553 public int Id { get ; set ; }
@@ -2537,13 +2528,18 @@ public virtual void Converted_discriminator_annotations_are_stored_in_snapshot()
25372528""" ) ,
25382529 o =>
25392530 {
2531+ var baseEntityType = o . FindEntityType ( typeof ( BaseEntityWithStructDiscriminator ) ) ;
25402532 Assert . Equal (
25412533 "Discriminator" ,
2542- o . FindEntityType ( typeof ( BaseEntityWithStructDiscriminator ) ) [ CoreAnnotationNames . DiscriminatorProperty ] ) ;
2534+ baseEntityType [ CoreAnnotationNames . DiscriminatorProperty ] ) ;
25432535
25442536 Assert . Equal (
25452537 "Base" ,
2546- o . FindEntityType ( typeof ( BaseEntityWithStructDiscriminator ) ) [ CoreAnnotationNames . DiscriminatorValue ] ) ;
2538+ baseEntityType [ CoreAnnotationNames . DiscriminatorValue ] ) ;
2539+
2540+ var discriminatorProperty = baseEntityType . FindDiscriminatorProperty ( ) ;
2541+ Assert . Equal ( typeof ( string ) , discriminatorProperty . ClrType ) ;
2542+ Assert . Equal ( "Discriminator" , discriminatorProperty . Name ) ;
25472543
25482544 Assert . Equal (
25492545 "Another" ,
@@ -3390,16 +3386,17 @@ public virtual void Discriminator_with_non_string_default_name_is_stored_in_snap
33903386 => Test (
33913387 builder =>
33923388 {
3393- builder . Entity < DerivedEntityWithIntDiscriminator > ( ) . HasBaseType < BaseEntityWithIntDiscriminator > ( ) ;
3394- builder . Entity < BaseEntityWithIntDiscriminator > ( )
3389+ builder . Entity < DerivedType > ( ) . HasBaseType < BaseType > ( ) ;
3390+ builder . Entity < BaseType > ( )
3391+ . Ignore ( b => b . Navigation )
33953392 . HasDiscriminator < int > ( "Discriminator" )
3396- . HasValue < BaseEntityWithIntDiscriminator > ( 0 )
3397- . HasValue < DerivedEntityWithIntDiscriminator > ( 1 ) ;
3393+ . HasValue < BaseType > ( 0 )
3394+ . HasValue < DerivedType > ( 1 ) ;
33983395 } ,
33993396 AddBoilerPlate (
34003397 GetHeading ( )
34013398 + """
3402- modelBuilder.Entity("Microsoft.EntityFrameworkCore.Migrations.Design.CSharpMigrationsGeneratorTest+BaseEntityWithIntDiscriminator ", b =>
3399+ modelBuilder.Entity("Microsoft.EntityFrameworkCore.Migrations.Design.CSharpMigrationsGeneratorTest+BaseType ", b =>
34033400 {
34043401 b.Property<int>("Id")
34053402 .ValueGeneratedOnAdd()
@@ -3412,26 +3409,23 @@ public virtual void Discriminator_with_non_string_default_name_is_stored_in_snap
34123409
34133410 b.HasKey("Id");
34143411
3415- b.ToTable("BaseEntityWithIntDiscriminator ", "DefaultSchema");
3412+ b.ToTable("BaseType ", "DefaultSchema");
34163413
34173414 b.HasDiscriminator<int>("Discriminator").HasValue(0);
34183415
34193416 b.UseTphMappingStrategy();
34203417 });
34213418
3422- modelBuilder.Entity("Microsoft.EntityFrameworkCore.Migrations.Design.CSharpMigrationsGeneratorTest+DerivedEntityWithIntDiscriminator ", b =>
3419+ modelBuilder.Entity("Microsoft.EntityFrameworkCore.Migrations.Design.CSharpMigrationsGeneratorTest+DerivedType ", b =>
34233420 {
3424- b.HasBaseType("Microsoft.EntityFrameworkCore.Migrations.Design.CSharpMigrationsGeneratorTest+BaseEntityWithIntDiscriminator");
3425-
3426- b.Property<string>("Name")
3427- .HasColumnType("nvarchar(max)");
3421+ b.HasBaseType("Microsoft.EntityFrameworkCore.Migrations.Design.CSharpMigrationsGeneratorTest+BaseType");
34283422
34293423 b.HasDiscriminator().HasValue(1);
34303424 });
34313425""" ) ,
34323426 model =>
34333427 {
3434- var discriminatorProperty = model . GetEntityTypes ( ) . First ( ) . FindDiscriminatorProperty ( ) ;
3428+ var discriminatorProperty = model . FindEntityType ( typeof ( BaseType ) ) ! . FindDiscriminatorProperty ( ) ;
34353429 Assert . Equal ( typeof ( int ) , discriminatorProperty . ClrType ) ;
34363430 Assert . Equal ( "Discriminator" , discriminatorProperty . Name ) ;
34373431 } ) ;
0 commit comments