2013-02-26 38 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