2016-08-19 5 views
-2

Ich habe 3 Klasse, 2 sind einfache Klasse und 1 kombiniert die beiden von ihnen.Wie bekomme ich ein Attribut aus meiner Klasse mit EF

public class Person:Base 
{ 
    public DateTime DOB { get; set; } 
    public string first { get; set; } 
    public string last { get; set; } 
} 

public class Roles:Base 
{ 
    public string Description { get; set; } 
} 

public class RolePerson:Base 
{ 
    public int pID { get; set; } 
    public virtual Person PersonID { get; set; } 
    public int rID { get; set; } 
    public virtual Roles RoleID { get; set; } 
    public int order { get; set; } 
} 

Jetzt habe ich Methode, die RolePerson Hexe wählen würde würde alle Mitglied pID mit der ID greifen, die ich in dem Argument liefern, und schicken Sie das RoleID Feld.

dies ist, wie meine Methode aussehen

public IEnumerable<Roles> PersonRoles(int personID) 
    { 
     return db.RolePerson.Where<RolePerson>((p) => p.pID == personID); 
    } 

Wie ich die Rolle zurückzukehren sagen kann und nicht die roleperson.

Update:

Meine Basisklasse ist wie folgt

public abstract class Base 
    { 
     public int ID { get; set; } 
     public Boolean isValid { get; set; } 
     public DateTime createdOn { get; set; } 
     public int createdID { get; set; } 
     public Person createdPerson { get; set; } 
     public DateTime updatedOn { get; set; } 
     public int updatedID { get; set; } 
     public Person updatedPerson { get; set; } 
    } 
+0

Was meinen Sie mit "die Rolle zurückgeben"? Möchten Sie eine Liste von 'Rollen' anstelle von' RollenPerson' zurückgeben? –

+0

Ja sorry, das ist was ich meine, – Jseb

+0

Aber Ihre 'Roles' Klasse hat keine' RoleID' Eigenschaft. Wie steht es mit "RolesPerson"? –

Antwort

0

Sie können eine select-Anweisung am Ende laufen.

return d.RolePerson.Where(p => p.PId == personID).Select(r=> r.RoleID); 
+0

Dies gibt immer noch eine Liste von 'RolePerson' anstatt einer Liste von' Roles' zurück, was das OP will. –

+0

@AmateurProgrammer Nein, es wird keine Liste von RolePerson zurückgegeben. Select wird die angegebene Eigenschaft, in diesem Fall RoleId, extrahieren. Dabei handelt es sich um den Typ von Roles entsprechend der Klasse und gibt ein IEnumerable davon zurück. –

+0

Danke, ich habe es getestet und ja, das, was die Syntax ich suchte, danke, wird akzeptieren, sobald ich kann – Jseb

Verwandte Themen