多个一对多关系映射

时间:2011-12-22 11:07:13

标签: c# fluent-nhibernate

我是NHibernate的新手,我有一项任务是使用existsinig实现来增强项目。目前的设计很简单,就像在'First Project'中一样:

store(1)->(many)Employee

现在我想这样做:

store(1)->(many)Employee  AND
Empoyee(1)->(many)Child

从store-Employee到Employee-Child重新实现映射逻辑不起作用。 试图在网上发现类似的enter code here但没有运气。 关于映射的任何提示都非常感谢。

由于

@MeckLey:非常感谢 为了回应 - 我正在尝试使用持久性规范示例来测试映射。在伪代码中我做了类似的事情:

new PersistenceSpecification<Child>(_session, new CustomEqualityComparerChild())
  .CheckProperty(c => c.Name, "Child1Name")
    --other Child prperties--
  .CheckReference(c => c.Employee, new Employee{
        Store = new Store{--store properties--},
          --other Employee Properties--
        });

外键不应为null的列插入空值。我尝试进行测试,以便按正确的顺序创建所有内容:

Store->Employee->Child

..但我失败了

@Meckley好的,这是真实的东西..'store'是“ReturnOrder”,'Employee'是“ReturnOrderLineItem”,'Chlid'是“ReturnOrderReplacementItem” 这些类遵循“FirstExample”的确切结构,映射如下:

public ReturnOrderMap()
    {
        Id(x => x.Id);
        Map(x => x.OrderTrackingNumber);
        Map(x => x.UserId);

        HasMany(x => x.ReturnOrderLineItems).Inverse().Cascade.AllDeleteOrphan();
    }

 public ReturnOrderLineItemMap()
    {
        Id(x => x.Id);
        Map(x => x.Sku);
        Map(x => x.Status);
        Map(x => x.Comments);

        HasMany(x => x.ReturnOrderReplacementItems).Inverse().Cascade.AllDeleteOrphan();
        References(x => x.ReturnOrder);
    }

 public ReturnOrderReplacementItemMap()
    {
        Id(x => x.Id);
        Map(x => x.Quantity);
        Map(x => x.Size);
        References(x => x.ReturnOrderLineItem);
    }

我会跳过Mapping测试并尝试查看它是否真的有效,也许你不能用PesristenceSpecification测试这样的东西..

0 个答案:

没有答案