일부 속성이 들어있는 UserDetail
모델이 있는데 사용자에게 알려진 언어 및 알 수없는 언어 목록을 추가하려고합니다.C# Entity Framework 코드 우선 관계
나는 어떻게 할 수 있습니까? 첫째로 나는 두 개의 테이블 unknownLanguages
과 knownLanguages
을 만들고 릴레이션을 하나씩 만들 필요가 있다고 생각합니다. 그러나 두 테이블 모두 Value
과 Name
과 같은 속성을 가지고 있습니다. 더 나은 해결책은 하나의 테이블을 생성하는 것입니다. 속성을 알려 지거나 알려지지 않은 것으로 나눌 수 있습니까? 내가 방법을 모르는 외에 작성되지 않았습니다
public class UserDetail
{
public UserDetail()
{
this.Languages = new HashSet<Language>();
}
[Key, ForeignKey("User")]
public string Id { get; set; }
public DateTime Birthday { get; set; }
public string Gender { get; set; }
public string Country { get; set; }
public string About { get; set; }
public virtual ApplicationUser User { get; set; }
public virtual ICollection<Language> Languages { get; set; }
}
그러나 많은 많은 관계 :
언어 모델 :
public class Language
{
public Language()
{
this.UserDetails = new HashSet<UserDetail>();
}
public int LanguageId { get; set; }
public string Value { get; set; }
public string Name { get; set; }
public virtual ICollection<UserDetail> UserDetails { get; set; }
}
UserDetail 모델을
내가 이렇게 이렇게 시도 나는 알려지지 않은 속성을 추가 할 수 있습니다.
제안 사항?
감사
이름이 unknowLanguages 및 knownLanguages 인 두 개의 외래 키 (관계)를 추가 하시겠습니까? – Saadi
일반적으로 데이터베이스에 "알 수없는 언어"가 저장되어 있지 않다고 생각합니다. 알려진 언어 목록에없는 언어는 정의 상으로는 알려지지 않았습니다. 아니면 당신에게 중요한 "채워지지 않은"것과 "알려지지 않은 채워진 것"사이의 구별은 무엇입니까? 그리고 데이터베이스에 "알려진"언어와 "알려지지 않은"언어가 동시에 존재할 가능성에 대해 당신은 무엇을하고 싶습니까? – hvd