2014-10-06 67 views
0

我不确定以下概念的名称是什么,这是有问题的,因为我试图在我的实体框架域模型中实现它(我的信誉不够高发表图片,即使它是有用的!):将两个一对多关系建模为一个

Permit - 有很多 - >OfficePermit - 有很多 - >Task

本质上讲,这是Permit之间的一个一对多的关系, Task我想用我的许可域模型上的集合导航属性ICollection<Task> Tasks来表示它。

我不想在ViewModel层实现这个作为额外的属性,因为我依靠实体框架生成的元数据在客户端使用(使用Breeze.js)。我将如何着手在我的领域模型中表达这种关系 - 这甚至有可能吗?

回答

0

你可以做这样的...

public class Permit 
{ 
    public Permit() 
    { 
     this.PermitId = Guid.NewGuid().ToString(); 
    } 

    public string PermitId { get; set; } 

    public ICollection<OfficePermit> OfficePermits { get; set; } 
} 

public class OfficePermit 
{ 
    public OfficePermit() 
    { 
     this.OfficePermitId = Guid.NewGuid().ToString(); 
    } 

    public string OfficePermitId { get; set; } 

    public string PermitId { get; set; } 

    public Permit Permit { get; set; } 

    public ICollection<@Task> Tasks { get; set; } 
} 

public class @Task 
{ 
    public Task() 
    { 
     this.TaskId = Guid.NewGuid().ToString(); 
    } 

    public string TaskId { get; set; } 

    public OfficePermit OfficePermit { get; set; } 

    public string OfficePermitId { get; set; } 
} 
+0

这就是我现在有。我想要的是在'Permit'对象上拥有'Tasks'导航属性,而不必通过许可证的OfficePermits导航属性检索许可证的任务。不管怎么说,还是要谢谢你。 – 2014-10-06 20:17:27