使用id和collection映射类而不创建表

时间:2014-07-30 19:38:37

标签: nhibernate

我想在NHibernate中映射这样的类,但不为父类创建表。

public class CarService
{
    public Guid CarId { get; set; }

    public ICollection<Service> Services { get; protected set; }

    public void Add(Service service)
    {
        if (this.Services.Any(s => s.Type == service.Type))
        {
            throw new Exception("service type already added");
        }

        this.Services.Add(service);
    }
}

public class Service
{
    public Guid ServiceId { get; set; }

    public ServiceType Type { get; set; }

    public string Prop2 { get; set; }

    ...
}

所以我想只有一个Child表,它看起来像:

| CHILD    |
|----------|
| ChildId  |
| ParentId | 
| Prop1    |
| Prop2    |
| ...      |
|----------|

是否可以在NHibernate中进行此类映射?

编辑: 我已经更新了我的对象模型。让父类具有保护我的模型集成(从DDD聚合根)的主要原因。在我的模型中,我有类CarService,它将存储为汽车购买的所有服务我想在我的模型中创建一些验证,这将阻止两次添加相同的服务类型。

1 个答案:

答案 0 :(得分:0)

我不认为这是可能的。你总是可以在内存中构造Parent对象,但是NHibernate不会为你做这件事。