1
외래 키 제약 조건을 만들 수 없습니다 : 패키지에서엔티티 프레임 워크 마이그레이션은 내가 2 개 테이블을했다
public class WorkCheck
{
[Key, Column(Order = 0)]
[ForeignKey("Work")]
public int WorkId { get; set; }
public virtual Work Work { get; set; }
[Key, Column(Order = 1)]
[ForeignKey("Check")]
public int CheckId { get; set; }
public virtual Check Check { get; set; }
(...)
}
public class Work
{
public int WorkId { get; set; }
(...)
public virtual IList<WorkCheck> WorkChecks { get; set; }
}
public class Check
{
public int CheckId { get; set; }
(...)
public virtual IList<WorkCheck> WorkChecks { get; set; }
}
:
public class Work
{
public int WorkId { get; set; }
(...)
}
public class Check
{
public int CheckId { get; set; }
(...)
}
은 그 때 나는 그렇게 그들 사이의 페이로드가 많은 관계로 많은 추가하고 싶었 관리자 콘솔 "Add-Migration WorkCheckTableAdded"명령을 실행했지만 오류가 표시되지 않았습니다.
내가 명령 "-verbose 업데이트 - 데이터베이스"를 실행하지만 직후, 나는 예외를 가지고 : "외래 키 'FK_dbo.WorkCheck_dbo.Work_WorkId'참조 잘못된 열이 참조 된 테이블 'DBO에'WorkId '. 제약 조건을 만들 수 없습니다. 이전 오류를 참조하십시오. "
'Work' 테이블에 해당 이름 아래에'WorkId' 컬럼이 이미 존재하며 이전을 실행하기 전에 기본 키입니까? 또는 열 이름이 다른가 ('HasColumnName'으로 다시 매핑)? 그리고 데이터베이스 SQL Server입니까? – Slauma
WorkId 열이 이미 있고 기본 열입니다. 내일 새 빈 프로젝트를 만들고이 문제를 다시 테스트 할 것입니다. –
처음부터 프로젝트를 시작하면 문제가 발생하지 않습니다. 내 초기 마이그레이션에 작업 체크 테이블이없는 현재 스키마가 포함되도록 이전 프로젝트의 마이그레이션을 어떻게 재설정 할 수 있습니까? –