2013-02-26 41 views
0

我有以下型號:額外的虛擬/導航性能

public class Useraccount 
{ 
    public int Id { get; set; } 
    public virtual ICollection<Task> Tasks { get; set; } 
} 

任務集合由通過任務實體的實體框架填補。這工作沒有問題。 現在我想有一個額外的虛擬財產,因此類是這樣的:

的FinishedTasks屬性是相同的任務一樣,但它只有它們完成的任務(其中有statusId = 1例如)。 EF可以這樣做嗎?怎麼樣?

+0

請不要包含「謝謝」。在你的問題。這是無用的噪音。 – Doorknob 2013-02-26 14:09:01

回答

1

定義屬性是這樣的:

public class Useraccount 
{ 
    public int Id { get; set; } 
    public virtual ICollection<Task> Tasks { get; set; } 

    [NotMapped] 
    public IEnumerable<Task> FinishedTasks 
    { 
     get 
     { 
      return Tasks.Where(t => t.Finished); 
     } 
    } 
} 

NotMapped屬性告訴EF,這家酒店沒有映射到數據庫列(見this page瞭解更多信息)。

沒有必要讓它變成虛擬的(除非你完全知道爲什麼),因爲EF不會覆蓋它。 set訪問者也不應該存在,因爲它實際上是一個計算屬性。

+0

非常感謝。我會在今天下午嘗試。 – mosquito87 2013-02-26 14:26:19