는 다음과 같이 정의 된 데이터 모델과 간단한 마이크로 블로깅 플랫폼은 다음과 고려 :EF6 코드 우선에서 사용자 정의 참조 열 이름을 어떻게 설정합니까?
[Table("users")]
public class User
{
[Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
[Column("name"), MaxLength(45), Index(IsUnique = true)]
public string Name { get; set; }
[Column("password"), MaxLength(45)]
public string Password { get; set; }
public virtual ICollection<Message> Messages { get; set; }
}
[Table("messages")]
public class Message
{
[Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
[Column("text"), MaxLength(512)]
public string Text { get; set; }
[Column("author")]
public virtual User Author { get; set; }
}
나는 그것을 데이터베이스 (SQL DDL) 첫 번째 방법 설계했다, 나는 외부 키로 messages.author
참조 users.id
포함했다. 나는 그것을 이렇게 좋아한다 : 깔끔하고 설명 적이다.
그러나 코드 우선 방법을 시도해 보았을 때, 명시 적으로 [Column("author")]
특성을 지정 했음에도 불구하고 이 아닌 외래 키 열의 이름이 messages.User_Id
인 것으로 나타났습니다.
어떻게이 문제를 해결할 수 있습니까?
내가 .User_Id
하지 확실히 참조가 더 필요한 경우 분명하지만, 할 (대신 내 원래 .author
아이디어) 단순히 .user
그것을 이름을 동의 할 것 -이, 명백한 중복 추한 _Id
이 키에 추가됩니다 때 완전히 싫어 열.
SQLiteCodeFirst 라이브러리가있는 SQLite 데이터베이스를 사용하며이 라이브러리가 일반적인 Entity Framework 동작인지 아니면이 특정 라이브러리의 버그인지 확실하지 않습니다.