방금 새로운 Entity Framework 4.1 NuGet 패키지를 설치 했으므로 NuGet 소개 및this article of Scott Hanselman에 따라 EFCodeFirst
패키지를 대체했습니다.EF 4.1 어수선한 것들. FK 명명 전략이 변경 되었습니까?
이제 다음과 같은 모델을 상상 :
public class User
{
[Key]
public string UserName { get; set; }
// whatever
}
public class UserThing
{
public int ID { get; set; }
public virtual User User { get; set; }
// whatever
}
마지막 EFCodeFirst 릴리스
는UserThing
테이블의 외부 키를 생성
UserUserName
을했다.
새 릴리스를 설치하고 난 다음 오류 얻을 실행 한 후 :
Invalid column name 'User_UserName'
물론 새 릴리스가 다른 FK 네이밍 전략을 가지고 있다는 것을 의미한다. 이것은 다른 모든 테이블과 컬럼 사이에서 일치합니다. AnyOldForeignKeyID
EF 4.1이라는 FK EFCodeFirst가 AnyOldForeignKey_ID
(밑줄에 유의하십시오)을 호출하기를 원합니다.
FK에 밑줄을 붙여도 상관 없지만,이 경우 불필요하게 데이터베이스를 버리고 재 작성하거나 불필요하게 al FK를 이름을 바꾸어야한다는 의미입니다.
FK 명명 규칙이 변경된 이유와 Fluent API를 사용하지 않고 을 구성 할 수 있는지 여부를 알고있는 사람이 있습니까??
덕분에, 나는 동정 ... 너무 그 기사를 건너 왔어요 , 그러나 그것은 왜 처음부터 바뀌 었습니까? –
문제점을 해결하는 방법에 대한 제안을 포함하도록 답변을 업데이트했지만, 그다지 간단하지는 않습니다. 나는 왜 대회가 바뀌 었는지 모르겠다. 얼리 어답터의 단점 중 하나입니다. 이런 식으로 당신을 바꿀 수 있습니다. 내 개인 사이트에서 사용하는 것처럼 나에게도 영향을 미친다. 더 나쁜 것은 내 자신의 두 가지 규칙을 작성한 것이므로 지금은 실제로 크릭이다. –
sp_rename을 사용하여 현재 FK의 이름을 새 국제 대회에서 기대하는 이름으로 변경 하시겠습니까? 고마워, 고마워! –