复杂实体聚合

时间:2013-08-23 10:37:12

标签: nhibernate fluent-nhibernate fluent-nhibernate-mapping

您有非常复杂的项目实体聚合设计。 我正在使用域驱动开发。 要映射entites我正在使用FluentNHibernate

这是我的域名设计


    public abstract class Domain
    {
    public virtual long Id{get;set;}
    }

    public ClassA:Domain
    {   

        public virtual DateTtime Time{get;set;}
        public virtual ClassC C1 {get;set;}
        public virtual IList List{get;set;}

    }

    public ClassC:Domain
    {
    public virtual string Schedule{get;set;}
    }

    public ClassD:Domain
    {
       public virtual string PropClassD{get;set;}
    }

    public ClassE:ClassD
    {
    public virtual string PropClassE{get;set;}
    }

    public ClassF:ClassD
    {
    public virtual string PropClassF{get;set;}
    }

    public ClassG:Domain
    {
    //Composite key ClassA+ClassD
        public virtual ClassA C1 {get;set;}
        public virtual ClassD C2 {get;set;}
    }

我尝试了不同的映射设置,但没有任何工作。我的聚合根是ClassA。

遵循ClassE和ClassF表的单一类别。

请帮助它的工作。

1 个答案:

答案 0 :(得分:0)

当我不知道如何映射对象时,我使用Entity Developer http://www.devart.com/entitydeveloper/他们有一个免费版本,最多支持八个实体。至少可以给你一些具体案例的提示。鉴于Fluent NHibernate文档相对缺乏,这个工具也具有教育意义。您可以在此处查看此工具生成的映射示例http://www.codeproject.com/Articles/232034/Inheritance-mapping-strategies-in-Fluent-Nhibernat