2016-07-16 7 views
0

nicht gefunden. Ich versuchte die anderen Lösungen von den anderen Pfosten, aber keiner von ihnen arbeitete.Die Navigationseigenschaft wurde auf dem abhängigen Typ

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; } 
} 

betrifft

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

} 

Was habe ich verpasst?

+2

Ihre 'Users'-Klasse benötigt eine Eigenschaft' public virtual Groups Group {get; einstellen; } ' –

+0

O also müssen Sie nur eine Sammlung setzen, die sie enthält? –

+0

Nur ein Objekt (vorausgesetzt, Benutzer hat eine Gruppe) oder seine öffentliche ICollection Gruppen {get; einstellen; } 'if' Users 'enthält mehrere' Groups' (in diesem Fall müssen Sie die 'public virtual int Gruppen-ID {get; set;}' Eigenschaft löschen –

Antwort

3

Ich nehme eine One-Many-Beziehung zwischen Gruppe zu Benutzer an.

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

Ansatz 1: FK auf Navigationseigenschaft

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; } 
} 

Ansatz 2: FK auf Schlüsseleigenschaft

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; } 
    } 

Die oben erklärt schön here.

+0

Wow das ist so bequem ist das überhaupt legal? Ich muss keine Joins mehr machen. Danke für die Antwort. –

+0

Ja, Datenkommentare sind praktisch für kleine Projekte. Fluent API wird jedoch bevorzugt, wenn die Anzahl der Entitäten (Tabellen) groß ist. – Ankit

Verwandte Themen