protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "UserCustomerRelations", columns: table => new { Id = table.Column <int>(nullable: false) .Annotation("SqlServer:Identity", "1, 1"), UserId = table.Column <int>(nullable: false), CustomerId = table.Column <int>(nullable: false) }, constraints: table => { table.PrimaryKey("PK_UserCustomerRelations", x => x.Id); table.ForeignKey( name: "FK_UserCustomerRelations_Customers_CustomerId", column: x => x.CustomerId, principalTable: "Customers", principalColumn: "Id", onDelete: ReferentialAction.Restrict); table.ForeignKey( name: "FK_UserCustomerRelations_Users_UserId", column: x => x.UserId, principalTable: "Users", principalColumn: "Id", onDelete: ReferentialAction.Restrict); }); migrationBuilder.CreateIndex( name: "IX_Users_Upn", table: "Users", column: "Upn", unique: true, filter: "[Upn] IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_UserCustomerRelations_CustomerId", table: "UserCustomerRelations", column: "CustomerId"); migrationBuilder.CreateIndex( name: "IX_UserCustomerRelations_UserId", table: "UserCustomerRelations", column: "UserId"); // Create UserCustomerRelation Records from Users.CustomerId migrationBuilder.CreateAllUserCustomerRelations(); migrationBuilder.AddColumn <int>( name: "OrganizationId", table: "Users", nullable: true); migrationBuilder.CreateIndex( name: "IX_Users_OrganizationId", table: "Users", column: "OrganizationId"); migrationBuilder.AddForeignKey( name: "FK_Users_Organizations_OrganizationId", table: "Users", column: "OrganizationId", principalTable: "Organizations", principalColumn: "Id", onDelete: ReferentialAction.Restrict); //Set all OrganizationIds migrationBuilder.SetOrganizationIdForUsers(); migrationBuilder.DropForeignKey( name: "FK_Users_Customers_CustomerId", table: "Users"); migrationBuilder.DropIndex( name: "IX_Users_CustomerId", table: "Users"); migrationBuilder.DropColumn( name: "CustomerId", table: "Users"); }