From 5d2f598c8094f4c0b00e430ddd50512fc32fe3eb Mon Sep 17 00:00:00 2001 From: Hao Kung Date: Tue, 16 Jan 2018 14:44:29 -0800 Subject: [PATCH] Update initial migrations --- build/dependencies.props | 56 +++--- korebuild-lock.txt | 4 +- ...000000000_CreateIdentitySchema.Designer.cs | 177 +++++++++--------- .../00000000000000_CreateIdentitySchema.cs | 70 ++++--- .../IdentityDbContextModelSnapshot.cs | 16 +- .../content/RazorPagesWeb-CSharp/Startup.cs | 2 +- ...000000000_CreateIdentitySchema.Designer.cs | 177 +++++++++--------- .../00000000000000_CreateIdentitySchema.cs | 70 ++++--- .../IdentityDbContextModelSnapshot.cs | 16 +- .../content/StarterWeb-CSharp/Startup.cs | 2 +- 10 files changed, 312 insertions(+), 278 deletions(-) diff --git a/build/dependencies.props b/build/dependencies.props index e55a7f3dba..7f238cf9d5 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -3,39 +3,39 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 2.1.0-preview1-15652 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 + 2.1.0-preview1-15670 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 15.3.409 15.3.409 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 2.0.0 2.1.0-preview1-26102-01 15.3.0 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 - 2.1.0-preview1-28000 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 + 2.1.0-preview1-28092 2.0.0 0.19.0 3.7.0 diff --git a/korebuild-lock.txt b/korebuild-lock.txt index b0fda2bc24..db31b63687 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:2.1.0-preview1-15661 -commithash:c9349d4c8a495d3085d9b879214d80f2f45e2193 +version:2.1.0-preview1-15670 +commithash:49176144e03c3015d83b21e3f1d0ce093c05ecc3 diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs b/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs index f27fc96c28..30761bb5db 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs @@ -18,39 +18,94 @@ namespace Company.WebApplication1.Data.Migrations { protected override void BuildTargetModel(ModelBuilder modelBuilder) { +#pragma warning disable 612, 618 modelBuilder #if (UseLocalDB) - .HasAnnotation("ProductVersion", "1.0.0-rc3") + .HasAnnotation("ProductVersion", "2.1.0-preview1") .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); #else - .HasAnnotation("ProductVersion", "1.0.2"); + .HasAnnotation("ProductVersion", "2.1.0-preview1"); #endif + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() +#if (UseLocalDB) + .HasName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); +#else + .HasName("UserNameIndex"); +#endif + + b.ToTable("AspNetUsers"); + }); + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => { - b.Property("Id"); + b.Property("Id") + .ValueGeneratedOnAdd(); b.Property("ConcurrencyStamp") .IsConcurrencyToken(); b.Property("Name") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else .HasMaxLength(256); -#endif b.Property("NormalizedName") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else .HasMaxLength(256); -#endif b.HasKey("Id"); b.HasIndex("NormalizedName") + .IsUnique() +#if (UseLocalDB) + .HasName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); +#else .HasName("RoleNameIndex"); +#endif b.ToTable("AspNetRoles"); }); @@ -95,9 +150,11 @@ namespace Company.WebApplication1.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { - b.Property("LoginProvider"); + b.Property("LoginProvider") + .HasMaxLength(128); - b.Property("ProviderKey"); + b.Property("ProviderKey") + .HasMaxLength(128); b.Property("ProviderDisplayName"); @@ -121,8 +178,6 @@ namespace Company.WebApplication1.Data.Migrations b.HasIndex("RoleId"); - b.HasIndex("UserId"); - b.ToTable("AspNetUserRoles"); }); @@ -130,9 +185,11 @@ namespace Company.WebApplication1.Data.Migrations { b.Property("UserId"); - b.Property("LoginProvider"); + b.Property("LoginProvider") + .HasMaxLength(128); - b.Property("Name"); + b.Property("Name") + .HasMaxLength(128); b.Property("Value"); @@ -141,75 +198,10 @@ namespace Company.WebApplication1.Data.Migrations b.ToTable("AspNetUserTokens"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUser", b => - { - b.Property("Id"); - - b.Property("AccessFailedCount"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Email") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else - .HasMaxLength(256); -#endif - - b.Property("EmailConfirmed"); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("NormalizedEmail") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else - .HasMaxLength(256); -#endif - - b.Property("NormalizedUserName") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else - .HasMaxLength(256); -#endif - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityStamp"); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else - .HasMaxLength(256); -#endif - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex"); - - b.ToTable("AspNetUsers"); - }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany("Claims") + .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade); }); @@ -217,7 +209,7 @@ namespace Company.WebApplication1.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") - .WithMany("Claims") + .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade); }); @@ -225,7 +217,7 @@ namespace Company.WebApplication1.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") - .WithMany("Logins") + .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade); }); @@ -233,15 +225,24 @@ namespace Company.WebApplication1.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany("Users") + .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") - .WithMany("Roles") + .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade); }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 } } -} +} \ No newline at end of file diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.cs b/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.cs index 93771c4379..a1217ccc31 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.cs +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -#if (UseLocalDB) using System.Linq; using System.Threading.Tasks; +#if (UseLocalDB) using Microsoft.EntityFrameworkCore.Metadata; #endif using Microsoft.EntityFrameworkCore.Migrations; @@ -27,20 +27,6 @@ namespace Company.WebApplication1.Data.Migrations table.PrimaryKey("PK_AspNetRoles", x => x.Id); }); - migrationBuilder.CreateTable( - name: "AspNetUserTokens", - columns: table => new - { - UserId = table.Column(nullable: false), - LoginProvider = table.Column(nullable: false), - Name = table.Column(nullable: false), - Value = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); - }); - migrationBuilder.CreateTable( name: "AspNetUsers", columns: table => new @@ -74,7 +60,7 @@ namespace Company.WebApplication1.Data.Migrations #if (UseLocalDB) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), #else - .Annotation("Autoincrement", true), + .Annotation("Sqlite:Autoincrement", true), #endif ClaimType = table.Column(nullable: true), ClaimValue = table.Column(nullable: true), @@ -99,7 +85,7 @@ namespace Company.WebApplication1.Data.Migrations #if (UseLocalDB) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), #else - .Annotation("Autoincrement", true), + .Annotation("Sqlite:Autoincrement", true), #endif ClaimType = table.Column(nullable: true), ClaimValue = table.Column(nullable: true), @@ -120,8 +106,8 @@ namespace Company.WebApplication1.Data.Migrations name: "AspNetUserLogins", columns: table => new { - LoginProvider = table.Column(nullable: false), - ProviderKey = table.Column(nullable: false), + LoginProvider = table.Column(maxLength: 128, nullable: false), + ProviderKey = table.Column(maxLength: 128, nullable: false), ProviderDisplayName = table.Column(nullable: true), UserId = table.Column(nullable: false) }, @@ -160,16 +146,42 @@ namespace Company.WebApplication1.Data.Migrations onDelete: ReferentialAction.Cascade); }); - migrationBuilder.CreateIndex( - name: "RoleNameIndex", - table: "AspNetRoles", - column: "NormalizedName"); + migrationBuilder.CreateTable( + name: "AspNetUserTokens", + columns: table => new + { + UserId = table.Column(nullable: false), + LoginProvider = table.Column(maxLength: 128, nullable: false), + Name = table.Column(maxLength: 128, nullable: false), + Value = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); + table.ForeignKey( + name: "FK_AspNetUserTokens_AspNetUsers_UserId", + column: x => x.UserId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); migrationBuilder.CreateIndex( name: "IX_AspNetRoleClaims_RoleId", table: "AspNetRoleClaims", column: "RoleId"); + migrationBuilder.CreateIndex( + name: "RoleNameIndex", + table: "AspNetRoles", + column: "NormalizedName", +#if (UseLocalDB) + unique: true, + filter: "[NormalizedName] IS NOT NULL"); +#else + unique: true); +#endif + migrationBuilder.CreateIndex( name: "IX_AspNetUserClaims_UserId", table: "AspNetUserClaims", @@ -185,11 +197,6 @@ namespace Company.WebApplication1.Data.Migrations table: "AspNetUserRoles", column: "RoleId"); - migrationBuilder.CreateIndex( - name: "IX_AspNetUserRoles_UserId", - table: "AspNetUserRoles", - column: "UserId"); - migrationBuilder.CreateIndex( name: "EmailIndex", table: "AspNetUsers", @@ -199,7 +206,12 @@ namespace Company.WebApplication1.Data.Migrations name: "UserNameIndex", table: "AspNetUsers", column: "NormalizedUserName", +#if (UseLocalDB) + unique: true, + filter: "[NormalizedUserName] IS NOT NULL"); +#else unique: true); +#endif } protected override void Down(MigrationBuilder migrationBuilder) @@ -226,4 +238,4 @@ namespace Company.WebApplication1.Data.Migrations name: "AspNetUsers"); } } -} +} \ No newline at end of file diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/IdentityDbContextModelSnapshot.cs b/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/IdentityDbContextModelSnapshot.cs index 546959138c..06ce89d3a6 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/IdentityDbContextModelSnapshot.cs +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Data/Migrations/IdentityDbContextModelSnapshot.cs @@ -19,10 +19,10 @@ namespace Company.WebApplication1.Data.Migrations { modelBuilder #if (UseLocalDB) - .HasAnnotation("ProductVersion", "1.0.0-rc3") + .HasAnnotation("ProductVersion", "2.1.0-preview1") .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); #else - .HasAnnotation("ProductVersion", "1.0.2"); + .HasAnnotation("ProductVersion", "2.1.0-preview1"); #endif modelBuilder.Entity("Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityRole", b => @@ -94,9 +94,11 @@ namespace Company.WebApplication1.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserLogin", b => { - b.Property("LoginProvider"); + b.Property("LoginProvider") + .HasMaxLength(128); - b.Property("ProviderKey"); + b.Property("ProviderKey") + .HasMaxLength(128); b.Property("ProviderDisplayName"); @@ -129,9 +131,11 @@ namespace Company.WebApplication1.Data.Migrations { b.Property("UserId"); - b.Property("LoginProvider"); + b.Property("LoginProvider") + .HasMaxLength(128); - b.Property("Name"); + b.Property("Name") + .HasMaxLength(128); b.Property("Value"); diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Startup.cs b/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Startup.cs index 0becc0c2f2..f4b9e835bf 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Startup.cs +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Startup.cs @@ -68,7 +68,7 @@ namespace Company.WebApplication1 sqlOptions => sqlOptions.MigrationsAssembly("Company.WebApplication1"))); #endif - services.AddIdentity() + services.AddIdentity(options => options.Stores.MaxLengthForKeys = 128) .AddEntityFrameworkStores() .AddDefaultUI() .AddDefaultTokenProviders(); diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs b/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs index f27fc96c28..30761bb5db 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs @@ -18,39 +18,94 @@ namespace Company.WebApplication1.Data.Migrations { protected override void BuildTargetModel(ModelBuilder modelBuilder) { +#pragma warning disable 612, 618 modelBuilder #if (UseLocalDB) - .HasAnnotation("ProductVersion", "1.0.0-rc3") + .HasAnnotation("ProductVersion", "2.1.0-preview1") .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); #else - .HasAnnotation("ProductVersion", "1.0.2"); + .HasAnnotation("ProductVersion", "2.1.0-preview1"); #endif + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() +#if (UseLocalDB) + .HasName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); +#else + .HasName("UserNameIndex"); +#endif + + b.ToTable("AspNetUsers"); + }); + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => { - b.Property("Id"); + b.Property("Id") + .ValueGeneratedOnAdd(); b.Property("ConcurrencyStamp") .IsConcurrencyToken(); b.Property("Name") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else .HasMaxLength(256); -#endif b.Property("NormalizedName") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else .HasMaxLength(256); -#endif b.HasKey("Id"); b.HasIndex("NormalizedName") + .IsUnique() +#if (UseLocalDB) + .HasName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); +#else .HasName("RoleNameIndex"); +#endif b.ToTable("AspNetRoles"); }); @@ -95,9 +150,11 @@ namespace Company.WebApplication1.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { - b.Property("LoginProvider"); + b.Property("LoginProvider") + .HasMaxLength(128); - b.Property("ProviderKey"); + b.Property("ProviderKey") + .HasMaxLength(128); b.Property("ProviderDisplayName"); @@ -121,8 +178,6 @@ namespace Company.WebApplication1.Data.Migrations b.HasIndex("RoleId"); - b.HasIndex("UserId"); - b.ToTable("AspNetUserRoles"); }); @@ -130,9 +185,11 @@ namespace Company.WebApplication1.Data.Migrations { b.Property("UserId"); - b.Property("LoginProvider"); + b.Property("LoginProvider") + .HasMaxLength(128); - b.Property("Name"); + b.Property("Name") + .HasMaxLength(128); b.Property("Value"); @@ -141,75 +198,10 @@ namespace Company.WebApplication1.Data.Migrations b.ToTable("AspNetUserTokens"); }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUser", b => - { - b.Property("Id"); - - b.Property("AccessFailedCount"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken(); - - b.Property("Email") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else - .HasMaxLength(256); -#endif - - b.Property("EmailConfirmed"); - - b.Property("LockoutEnabled"); - - b.Property("LockoutEnd"); - - b.Property("NormalizedEmail") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else - .HasMaxLength(256); -#endif - - b.Property("NormalizedUserName") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else - .HasMaxLength(256); -#endif - - b.Property("PasswordHash"); - - b.Property("PhoneNumber"); - - b.Property("PhoneNumberConfirmed"); - - b.Property("SecurityStamp"); - - b.Property("TwoFactorEnabled"); - - b.Property("UserName") -#if (UseLocalDB) - .HasAnnotation("MaxLength", 256); -#else - .HasMaxLength(256); -#endif - - b.HasKey("Id"); - - b.HasIndex("NormalizedEmail") - .HasName("EmailIndex"); - - b.HasIndex("NormalizedUserName") - .IsUnique() - .HasName("UserNameIndex"); - - b.ToTable("AspNetUsers"); - }); - modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany("Claims") + .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade); }); @@ -217,7 +209,7 @@ namespace Company.WebApplication1.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") - .WithMany("Claims") + .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade); }); @@ -225,7 +217,7 @@ namespace Company.WebApplication1.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") - .WithMany("Logins") + .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade); }); @@ -233,15 +225,24 @@ namespace Company.WebApplication1.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") - .WithMany("Users") + .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") - .WithMany("Roles") + .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade); }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 } } -} +} \ No newline at end of file diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.cs b/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.cs index 93771c4379..a1217ccc31 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.cs +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/00000000000000_CreateIdentitySchema.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; -#if (UseLocalDB) using System.Linq; using System.Threading.Tasks; +#if (UseLocalDB) using Microsoft.EntityFrameworkCore.Metadata; #endif using Microsoft.EntityFrameworkCore.Migrations; @@ -27,20 +27,6 @@ namespace Company.WebApplication1.Data.Migrations table.PrimaryKey("PK_AspNetRoles", x => x.Id); }); - migrationBuilder.CreateTable( - name: "AspNetUserTokens", - columns: table => new - { - UserId = table.Column(nullable: false), - LoginProvider = table.Column(nullable: false), - Name = table.Column(nullable: false), - Value = table.Column(nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); - }); - migrationBuilder.CreateTable( name: "AspNetUsers", columns: table => new @@ -74,7 +60,7 @@ namespace Company.WebApplication1.Data.Migrations #if (UseLocalDB) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), #else - .Annotation("Autoincrement", true), + .Annotation("Sqlite:Autoincrement", true), #endif ClaimType = table.Column(nullable: true), ClaimValue = table.Column(nullable: true), @@ -99,7 +85,7 @@ namespace Company.WebApplication1.Data.Migrations #if (UseLocalDB) .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), #else - .Annotation("Autoincrement", true), + .Annotation("Sqlite:Autoincrement", true), #endif ClaimType = table.Column(nullable: true), ClaimValue = table.Column(nullable: true), @@ -120,8 +106,8 @@ namespace Company.WebApplication1.Data.Migrations name: "AspNetUserLogins", columns: table => new { - LoginProvider = table.Column(nullable: false), - ProviderKey = table.Column(nullable: false), + LoginProvider = table.Column(maxLength: 128, nullable: false), + ProviderKey = table.Column(maxLength: 128, nullable: false), ProviderDisplayName = table.Column(nullable: true), UserId = table.Column(nullable: false) }, @@ -160,16 +146,42 @@ namespace Company.WebApplication1.Data.Migrations onDelete: ReferentialAction.Cascade); }); - migrationBuilder.CreateIndex( - name: "RoleNameIndex", - table: "AspNetRoles", - column: "NormalizedName"); + migrationBuilder.CreateTable( + name: "AspNetUserTokens", + columns: table => new + { + UserId = table.Column(nullable: false), + LoginProvider = table.Column(maxLength: 128, nullable: false), + Name = table.Column(maxLength: 128, nullable: false), + Value = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); + table.ForeignKey( + name: "FK_AspNetUserTokens_AspNetUsers_UserId", + column: x => x.UserId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); migrationBuilder.CreateIndex( name: "IX_AspNetRoleClaims_RoleId", table: "AspNetRoleClaims", column: "RoleId"); + migrationBuilder.CreateIndex( + name: "RoleNameIndex", + table: "AspNetRoles", + column: "NormalizedName", +#if (UseLocalDB) + unique: true, + filter: "[NormalizedName] IS NOT NULL"); +#else + unique: true); +#endif + migrationBuilder.CreateIndex( name: "IX_AspNetUserClaims_UserId", table: "AspNetUserClaims", @@ -185,11 +197,6 @@ namespace Company.WebApplication1.Data.Migrations table: "AspNetUserRoles", column: "RoleId"); - migrationBuilder.CreateIndex( - name: "IX_AspNetUserRoles_UserId", - table: "AspNetUserRoles", - column: "UserId"); - migrationBuilder.CreateIndex( name: "EmailIndex", table: "AspNetUsers", @@ -199,7 +206,12 @@ namespace Company.WebApplication1.Data.Migrations name: "UserNameIndex", table: "AspNetUsers", column: "NormalizedUserName", +#if (UseLocalDB) + unique: true, + filter: "[NormalizedUserName] IS NOT NULL"); +#else unique: true); +#endif } protected override void Down(MigrationBuilder migrationBuilder) @@ -226,4 +238,4 @@ namespace Company.WebApplication1.Data.Migrations name: "AspNetUsers"); } } -} +} \ No newline at end of file diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/IdentityDbContextModelSnapshot.cs b/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/IdentityDbContextModelSnapshot.cs index 546959138c..06ce89d3a6 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/IdentityDbContextModelSnapshot.cs +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Data/Migrations/IdentityDbContextModelSnapshot.cs @@ -19,10 +19,10 @@ namespace Company.WebApplication1.Data.Migrations { modelBuilder #if (UseLocalDB) - .HasAnnotation("ProductVersion", "1.0.0-rc3") + .HasAnnotation("ProductVersion", "2.1.0-preview1") .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); #else - .HasAnnotation("ProductVersion", "1.0.2"); + .HasAnnotation("ProductVersion", "2.1.0-preview1"); #endif modelBuilder.Entity("Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityRole", b => @@ -94,9 +94,11 @@ namespace Company.WebApplication1.Data.Migrations modelBuilder.Entity("Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUserLogin", b => { - b.Property("LoginProvider"); + b.Property("LoginProvider") + .HasMaxLength(128); - b.Property("ProviderKey"); + b.Property("ProviderKey") + .HasMaxLength(128); b.Property("ProviderDisplayName"); @@ -129,9 +131,11 @@ namespace Company.WebApplication1.Data.Migrations { b.Property("UserId"); - b.Property("LoginProvider"); + b.Property("LoginProvider") + .HasMaxLength(128); - b.Property("Name"); + b.Property("Name") + .HasMaxLength(128); b.Property("Value"); diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Startup.cs b/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Startup.cs index 1d169663c5..7994827d11 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Startup.cs +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/content/StarterWeb-CSharp/Startup.cs @@ -53,7 +53,7 @@ namespace Company.WebApplication1 sqlOptions => sqlOptions.MigrationsAssembly("Company.WebApplication1"))); #endif - services.AddIdentity() + services.AddIdentity(options => options.Stores.MaxLengthForKeys = 128) .AddEntityFrameworkStores() .AddDefaultUI() .AddDefaultTokenProviders();