2016-07-16 59 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

你的用戶類需要一個屬性'public virtual Groups group {get;組; }' –

+0

O所以你只需要把一個包含它們的集合? –

+0

只是一個對象(假設'Users'有一個'Groups')或其公共集合 Groups {get;組; }'if'Users'包含多個'Groups'(在這種情況下,你需要刪除'public virtual int groupID {get; set;}'屬性 –

回答

3

我假設組與用戶之間的一對多關係。

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