2016-08-19 29 views
-2

我有3個課,2個是簡單課,1個是兩個課程。如何從我的課程中獲取屬性與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; } 
} 

現在我有方法,將選擇RolePerson女巫會抓住PID的所有成員與我的論點提供了ID,並返回角色ID字段。

這是我的方法看起來怎麼樣

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

怎麼說呢返回的作用,而不是roleperson。

更新:

我的基類是遵循

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

你是什麼意思「返回角色」?你想返回一個'Roles'列表而不是'RolePerson'嗎? –

+0

對不起,這就是我的意思, – Jseb

+0

但是你的'Roles'類沒有'RoleID'屬性。它與「RolesPerson」有什麼關係? –

回答

0

您可以運行在最後的SELECT語句。

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

這仍然返回一個'RolePerson'列表而不是'Roles'列表,這是OP想要的。 –

+0

@AmateurProgrammer不,它不會返回RolePerson的列表。選擇將提取提到的屬性,在這種情況下,RoleId是根據類的角色類型並返回一個IEnumerable。 –

+0

謝謝,我測試了它,是的,我一直在尋找的語法,謝謝,我會接受一次,我可以 – Jseb