2017-10-25 11 views
0

코드 첫 번째 기법을 사용하여 데이터를 저장할 수 없습니다. 여기 내 상황입니다 : 엔티티 프레임을 사용하여 데이터를 저장할 수 없습니다. 작업 코드 첫 번째 기술

public virtual DbSet<Users> User { get; set; } 
    public virtual DbSet<Agency> Agencies { get; set; } 
    public virtual DbSet<ColdStorage> ColdStorages { get; set; } 
    public virtual DbSet<ShowRoom> ShowRooms { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 

    } 

내 사용자 모델은 여기에 있습니다 :

[Table("Users")] 
     public class Users 
    { 
    [Key] 
    public int UserId { get; set; } 
    public string Name { get; set; } 
    public string Phone { get; set; } 
    public string Mobile { get; set; } 
    public string Email { get; set; } 
    public string Password { get; set; } 
    public bool isAgency { get; set; } 
    public bool isColdStorage { get; set; } 
    public string VerificationCode { get; set; } 
    public DateTime CreatedDate { get; set; } 

    // Reverse navigation 
    public virtual Agency Agency { get; set; } 
    public virtual ColdStorage ColdStorage { get; set; } 
    public virtual ShowRoom ShowRoom { get; set; } 

    public Users() 
    { 
     Agency = new Agency(); 
     ColdStorage = new ColdStorage(); 
     ShowRoom = new ShowRoom(); 
    } 
} 

내 다른 모델은 여기에 있습니다 :

[Table("Agency")] 
    public class Agency 
    { 
    [Key] 
    public int AgencyId { get; set; } 
    [ForeignKey("Users")] 
    public int UserId { get; set; } 

    public string AgencyName { get; set; } 

    public string Address { get; set; } 

    public string City { get; set; } 

    public string Description { get; set; } 

    public DateTime CreatedDate { get; set; } 
    [Required] 
    public virtual Users Users { get; set; }//Foriegn key 
} 

그리고 오류가 여기에 있습니다 :

메시지 ":"오류가 발생했습니다. ","ExceptionMessage ":"모델 생성 중에 하나 이상의 유효성 검사 오류가 감지되었습니다. \ r \ n \ r \ nColdStorage_Users_Source :: Multiplicity가 Role의 'ColdStorage_Users_Source' 'ColdStorage_Users'. 종속 역할 속성은 주요 속성이 아니기 때문에 종속 역할의 다중 도의 상한선은 '*'이어야합니다. \ r \ nShowRoom_Users_Source :

+0

대행사에 UserId가있는 경우 사용자 한 명만 지정할 수 있습니다. 시작하여 : [필수] public 가상 사용자 사용자 {얻을에 1. 삭제'[필수]'; 세트; } // Foriegn 키 2. 사용자 아이디 삭제 [ForeignKey ("Users")] public int UserId {get; 세트; } – mayu

답변

0

오류와 마찬가지로 말합니다.

"는 종속 역할 속성은 키 속성이 없기 때문에, 종속 역할의 다양성의 상한은 '*'를해야한다"

여기에서 의미하는 "종속 역할 속성"을, 예 : Agency.UserId 및 "다중도는 '*'이어야 함은 사용자가 대행사 모음을 가져야 함을 의미합니다. 예 :

public virtual ICollection<Agency> Agencies { get; } = new HashSet<Agency>();