2013-07-24 1 views
1

과수원 1.6 사용 'CustomerPartRecord'테이블에 public virtual int? BusinessCategory_Id { get; set; }을 추가했습니다. 그리고 'CustomerPart'테이블에과수원 1.6 FK를 만들 수 없게

public int? BusinessCategory_Id 
    { 
     get { return Record.BusinessCategory_Id; } 
     set { Record.BusinessCategory_Id = value; } 
    } 

을 추가했습니다. 내 마이그레이션 파일에서 나는 다음 추가 :

public int UpdateFrom26() 
    { 
     SchemaBuilder.CreateForeignKey("ProductCategoryRecord_CustomerPartRecord", "CustomerPartRecord", new[] { "BusinessCategory_Id" }, "ProductCategoryRecord", new[] { "Id" }); 
     return 27; 
    } 

그래서이 'ProductCategoryRecord'테이블에서 '이드'타고 'CustomerPartRecord'테이블에서 'BusinessCategory_Id'라는 FK로 저장해야합니다.

나는 다른 값으로 이전이 시도하고이 근무하고있다 그러나 이번에 나는 오류가 점점 오전 : 로그에서 Foreign key 'Umacs_ProductCategoryRecord_CustomerPartRecord' references invalid column 'BusinessCategory_Id' in referencing table 'Umacs_UMACS_Bradmount_CustomerPartRecord'. Could not create constraint. See previous errors.

2013-07-24 17:38:49,716 [28] Orchard.Data.Migration.DataMigrationManager - An unexpected error orccured while applying migration on UMACS.Bradmount from version 26 
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Data.SqlClient.SqlException: Foreign key 'Umacs_ProductCategoryRecord_CustomerPartRecord' references invalid column 'BusinessCategory_Id' in referencing table 'Umacs_UMACS_Bradmount_CustomerPartRecord'. 
Could not create constraint. See previous errors. 

는 또한 캐시를 삭제 시도가 나에게 말하고있다 파일 devl을 재실행하십시오. 섬기는 사람.

어떤 아이디어가 있습니까?

+0

CustomerPartRecord 테이블에 BusinessCategory_Id 열을 생성 한 위치에서 마이그레이션 코드를 표시 할 수 있습니까? –

+0

실제로 FK에 대한 열을 만들어야한다는 것을 알지 못했습니다. 'SchemaBuilder.CreateForeignKey'를 사용할 때 자동으로 수행했을 것이라고 생각했지만 문제를 해결 한 답변을 주셔서 감사합니다. – John

+0

답변으로 복사하여 부여 할 수 있습니다. –

답변

2

외래 키로 만들기 전에 먼저 열을 만들어야합니다.

+0

좋은 사람이 다시 건배 bertrand – John