将两个一对多关系建模为一个

时间:2014-10-06 03:01:15

标签: c# relational-database entity-framework-6

我不确定以下概念的名称是什么,这是有问题的,因为我试图在我的Entity Framework域模型中实现它(我的声誉不够高,无法发布图像,即使它很有用! ):

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

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

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

1 个答案:

答案 0 :(得分: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; }
}
相关问题