2016-07-16 5 views
0

Я пробовал другие решения с других сообщений, но ни один из них не работал.Свойство навигации не найдено по зависимому типу

public class Users 
{ 
    [Key] 
    public int userID { get; set; }  

    public string username { get; set; } 

    public string password { get; set; } 

    [ForeignKey("Groups")] 
    public virtual int groupID { get; set; } 
} 

относится к

public class Groups 
{ 
    [Key] 
    public int groupID { get; set; } 
    public string groupName { get; set; } 

} 

Что я пропустил?

+2

Вашему классу 'Users' требуется свойство' public virtual Groups Group {get; задавать; } ' –

+0

O, поэтому вам просто нужно поместить коллекцию, которая будет содержать их? –

+0

Просто объект (при условии, что 'Users' имеет один' Группы') или его 'public ICollection Groups {get; задавать; } 'if' Users' содержит несколько 'Groups' (в этом случае вам нужно удалить' public virtual int groupID {get; set;} 'свойство –

ответ

3

Я принимаю отношение One-Many между Group to User.

public class Group 
{  
    [Key] 
    public int GroupID { get; set; } 
    public string GroupName { get; set; } 
    public virtual ICollection<User> Users { get; set;} 
} 

Подход 1: FK на свойства навигации

public class User 
{ 
    [Key] 
    public int UserID { get; set; } 
    public string Username { get; set; } 
    public string Password { get; set; } 
    public int GroupID {get;set;}  
    [ForeignKey("GroupID ")] 
    public virtual Group Group{ get; set; } 
} 

Подход 2: FK на ключевое свойство

public class User 
    { 
     [Key] 
     public int UserID { get; set; } 
     public string Username { get; set; } 
     public string Password { get; set; } 
     [ForeignKey("Group")] 
     public int GroupID {get;set;}  
     public virtual Group Group{ get; set; } 
    } 

выше красиво объяснил here.

+0

Ничего себе это так удобно, это даже законно? Мне больше не нужно присоединяться. Спасибо за ответ. –

+0

Да, аннотации данных удобны для небольших проектов. Но Fluent API предпочтительнее, когда количество объектов (таблиц) велико. – Ankit

Смежные вопросы