두 개의 엔터티 모델, 계정 및 사용자가 있는데 종속 모델 (User)에서 외래 키를 구현하는 데 어려움이 있습니다. Azure 모바일 서비스 앱을 개발할 때 기본적으로 'Id'키 필드를 제공하는 엔티티 데이터 인터페이스를 사용해야합니다. 내가 '통해 AccountId'엔티티 프레임 워크는 '계정'테이블, '아이디'열로 해석 찾으려 지정할 때외래 키 관계 Entity Framework 코드 우선 (EntityData 문제)
public class Account : EntityData
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int AccountId { get; set; }
[Required]
public string Username { get; set; }
[Required]
public string EmailAddress { get; set; }
[Required]
public string Password { get; set; }
[Required]
public string SecurityQuestion { get; set; }
[Required]
public string SecurityAnswer { get; set; }
[Required]
public bool IsBusiness { get; set; }
public virtual User User { get; set; }
public virtual Business Business { get; set; }
}
public class User : EntityData
{
[Key, Column(Order=1)]
public virtual string Id { get; set; }
[Key, Column(Order=2), ForeignKey("Account")]
public int AccountId { get; set; }
public int UserId { get; set; }
[Required]
public string Forename { get; set; }
[Required]
public string Surname { get; set; }
public virtual Account Account { get; set; }
}
내 문제가 발생합니다. 코드 마이그레이션에서
출력 : -
User_Account_Source : 다중성은 관계 'USER_ACCOUNT'의 역할 'User_Account_Source'에서는 유효하지 않습니다. 종속 역할 속성은 주요 속성이 아니기 때문에 종속 역할의 다중성 인 상한값은 '*'여야합니다. User_Account_Target_User_Account_Source :: 참조 제한의 종속 역할에있는 모든 속성 유형 은 주 속성의 해당 속성 유형과 동일해야합니다. 엔티티 '사용자'의 속성 'AccountId'의 유형이 참조 제약 'User_Account'의 엔티티 'Account'에있는 속성 'Id'의 유형과 일치하지 않습니다.
모든 의견을 높이 평가하겠습니다!
왜'User'는 복합 기본 키가 있습니까? Id가 충분하지 않아야합니까? –
내 자신의 (UserId 및 AccountId) 대신 EntityData에 의해 생성 된 GUID Id 필드를 사용하고 싶지 않습니다. 기본 키를 만들려고하지만 EntityData ID 키로 인해 주문해야합니다. – davidcrossey