2014-06-23 2 views
2

내 엔터티에 새 속성을 추가하고 새 마이그레이션을 생성하는 명령을 실행했지만 생성 된 마이그레이션에 아무 것도 포함되지 않았습니다. EF가 열 추가를 감지하지 못했던 것 같습니다. 마이그레이션에서 열을 추가하기 위해해야 ​​할 일이 있습니까? 이것은 내 수업입니다 :Entity Framework 마이그레이션 - 마이그레이션되지 않는 열

public class Group 
{ 
    public int Id { get; set; } 
    public int OrganizerId { get; set; } 
    public string Name { get; set; } 
    public string ImageUrl { get; set; } 

    public bool IsOnline { get; set; } 

    public virtual User Organizer { get; set; } 
    public virtual ICollection<GroupParticipation> GroupParticipations { get; set; } 
    public virtual ICollection<Question> Questions { get; set; } 
    public virtual ICollection<Subject> Subjects{ get; set; } 
} 

"IsOnline"인 속성을 격리했습니다. 클래스에 추가하고 프로젝트를 컴파일 한 후, 나는 다음과 같은 명령을 실행

public partial class AddGroupIsOnline : DbMigration 
{ 
    public override void Up() 
    { 
    } 

    public override void Down() 
    { 
    } 
} 

위로 및 아래로는하지 : 여기가 올바르게 새로운 마이그레이션을 생성

Add-Migration AddGroupIsOnline 

을하지만 마이그레이션과 같은 방법 아무것도. 그것은 내 재산을 추가 했어야합니다, 내 가정이 맞습니까?

어떤 일이 벌어지고 있는지 알 수 있습니까?

모든 도움에 감사드립니다!

답변

1

좋아, 그래서 "문제"를 발견. 기본적으로 자동 마이그레이션은 Group 클래스에 IsOnline 속성을 추가 한 후 잠시 후에 발생합니다. 따라서 Add-Migration AddGroupIsOnline을 실행했을 때 변경 사항이 감지되지 않았습니다 (자동 마이그레이션에 의해 이미 변경 되었기 때문에).

나는 내 데이터베이스 테이블을보고 대답을 찾았으며 열은 이미있었습니다. 그럼 난 활성화 DB 마이그레이션하면 작성되는 마이그레이션 테이블에서보고, 나는 다음 줄을 발견, 나는 IsOnline 열을 제거

다음

Migration record

를 데이터베이스에서 자동 마이그레이션 기록을 삭제 한 후 다시-RAN :

public partial class AddGroupIsOnline : DbMigration 
{ 
    public override void Up() 
    { 
     AddColumn("dbo.Groups", "IsOnline", c => c.Boolean(nullable: false)); 
    } 

    public override void Down() 
    { 
     DropColumn("dbo.Groups", "IsOnline"); 
    } 
} 

그래서 여기에 내 자신 팁은 다음과 같습니다 : 아무것도 표시되지 않은 경우 여기

Add-Migration AddGroupIsOnline 

그리고는 결과입니다 마이그레이션 중에는 마이그레이션 할 것이 없습니다. [__MigrationHistory] 테이블에서 데이터베이스와 자동 마이그레이션을 확인하십시오.

관련 문제