EF6实体通过不同的阶段

时间:2014-08-14 00:06:22

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

背景

我正在组建一个内部公司系统来管理我们的销售计划(基本上是一个自定义CRM)。作为其中的一部分,我们确定了一个“生命周期”'每个客户在销售的各个阶段都会经历这些过程。挑战在于每个阶段都会向前一阶段添加额外的数据。

我们在ASP.NET MVC 5中使用EF6(代码优先)。

问题

允许每个阶段扩展前一个阶段的最佳实体框架模型是什么?我想也许是这样的:

//don't worry about relationships to other classes, it's just an example

public class Lead //phase 1
{
    public int Id {get; set;}
    public string Name {get; set;}
}

public class Prospect : Lead //phase 2
{
    public virtual ICollection<Contact> Contacts {get; set;}
    public virtual Quote Quote {get; set;}
}

public class Buyer : Prospect //phase 3
{
    public string Hypervisor {get; set;}
    public IPAddress AllocatedIP {get; set;}
}

这里的想法是每个阶段扩展前一个阶段以添加其他属性。但是我的理解是,为了便于更改,我们必须分离客户端,将它们转换/映射到新的(更多派生的)类型,填写缺少的属性然后重新附加它们。看起来有点脏。

所有EF-genius评论都表示赞赏。

0 个答案:

没有答案