1

Asp.Net에서 AspNetRoles 테이블 사용자 정의 필드를 만드는 여기 내 ApplicationRole입니다 마이그레이션이 생성되었습니다 :마이그레이션 오류 신원 2.0.0

namespace MyApp.MigrationsMembership 
{ 
    using System; 
    using System.Data.Entity.Migrations; 

    public partial class RolesFields : DbMigration 
    { 
     public override void Up() 
     { 
      DropForeignKey("dbo.AspNetUserRoles", "RoleId", "dbo.AspNetRoles"); 
      CreateTable(
       "dbo.AspNetRoles", 
       c => new 
        { 
         Id = c.String(nullable: false, maxLength: 128), 
         ProperName = c.String(nullable: false, maxLength: 50), 
         Description = c.String(), 
         Name = c.String(nullable: false, maxLength: 256), 
        }) 
       .PrimaryKey(t => t.Id); 

      AddForeignKey("dbo.AspNetUserRoles", "RoleId", "dbo.AspNetRoles", "Id", cascadeDelete: true); 
      DropTable("dbo.AspNetRoles"); 
     } 

     public override void Down() 
     { 
      CreateTable(
       "dbo.AspNetRoles", 
       c => new 
        { 
         Id = c.String(nullable: false, maxLength: 128), 
         Name = c.String(nullable: false, maxLength: 256), 
        }) 
       .PrimaryKey(t => t.Id); 

      DropForeignKey("dbo.AspNetUserRoles", "RoleId", "dbo.AspNetRoles"); 
      DropTable("dbo.AspNetRoles"); 
      AddForeignKey("dbo.AspNetUserRoles", "RoleId", "dbo.AspNetRoles", "Id", cascadeDelete: true); 
     } 
    } 
} 

왜 새 AspNetRoles 테이블을 만드는 중입니까? 그것에 테이블? 여기

는 패키지 관리자 콘솔에서 오류 메시지입니다 :

There is already an object named 'AspNetRoles' in the database. 

UPDATE :이 같은 문제는 2.0.0이 출시 된 이후 일이 계속 때문에 내가 제목에서 "베타"를 제거했습니다. 테이블을 삭제해야하는 모든 마이그레이션은 마지막으로 DropTable을 수행합니다.

+0

Microsoft.AspNet.Identity.Core 1.0.0.0을 사용하여 마이그레이션을 활성화하고 버전 2.0.0.0-beta1로 업데이트했기 때문에 문제가 발생할 수있었습니다. 또한 EntityFramework를 베타 버전으로 업데이트했습니다. –

+0

방금 ​​버전 1을 사용하기 시작했으며 베타 버전을 사용하는 대신 버전 2를 기다리게됩니다. 나는이 질문을 엔티티 프레임 워크 및/또는 asp.net-identity 사람들에게 테스트 용으로 남겨 둘 것입니다. –

답변

2

해결 방법은 분명합니다. Update-Database을 실행하기 전에 마이그레이션 파일에서 만든 TransactSQL 명령의 순서를 변경하십시오. 누군가는 이것을 고쳐야한다.