在Castle Activerecord中使用Class Table和Single Table继承?

时间:2010-01-04 22:52:53

标签: castle-activerecord single-table-inheritance class-table-inheritance

在Castle Activerecord(在NHibernate之上),是否可以全局使用类表继承,并在继承树的一部分上使用单表继承?我想做点什么

/// <summary>
/// Base class for models
/// </summary>
[ActiveRecord("model"), JoinedBase]
public abstract class Model: ActiveRecordBase
{
    /// <summary>
    /// Primary Key
    /// </summary>
    [PrimaryKey(PrimaryKeyType.UuidHex, "ROWID", Params = "format=D,separator=-")]
    public virtual string Id { get; set; }

    [Property("name")]
    public string Name { get; set; }

    [Property("description")]
    public string Description{ get; set; }

}

/// <summary>
/// A container
/// </summary>
[ActiveRecord("container")]
public class Container : Model
{
    /// <summary>
    /// Gets the container id
    /// </summary>
    [JoinedKey("container_id")]
    public override string Id
    {
        get { return base.Id; }
        set { base.Id = value; }
    }
}

/// <summary>
/// A glass
/// </summary>
[ActiveRecord("container",
              DiscriminatorColumn = "container_type",
              DiscriminatorValue = "1"
)]
public class Glass : Container
{
}

所以所有常见的“东西”(如名称,描述等)都在“模型”表中,但我仍然可以在“容器”表上使用STI。或者这是浪费时间,我应该去STI做整件事吗?

先谢谢你,Jim

0 个答案:

没有答案