public void Configure(EntityTypeBuilder <User> builder) { builder.Property(user => user.Id).IsRequired().ValueGeneratedNever(); builder.Property(user => user.Email).IsRequired(); builder.Property(user => user.NormalizedEmail).IsRequired(); builder.Property(user => user.Country).HasConversion(country => country.Name, name => Country.FromName(name)).IsRequired(); builder.OwnsOne( user => user !.Dob, userDob => { userDob.WithOwner().HasForeignKey("UserId"); userDob.Property <Guid>("Id").ValueGeneratedOnAdd(); userDob.Property(dob => dob.Year).IsRequired(); userDob.Property(dob => dob.Month).IsRequired(); userDob.Property(dob => dob.Day).IsRequired(); userDob.HasKey("Id"); userDob.ToTable("UserDob"); }); builder.OwnsOne( user => user.Profile, userProfile => { userProfile.WithOwner().HasForeignKey("UserId"); userProfile.Property <Guid>("Id").ValueGeneratedOnAdd(); userProfile.Property(profile => profile !.FirstName).IsRequired(); userProfile.Property(profile => profile !.LastName).IsRequired(); userProfile.Property(profile => profile !.Gender).HasConversion(gender => gender.Value, value => Gender.FromValue(value)).IsRequired(); userProfile.HasKey("Id"); userProfile.ToTable("UserProfile"); });