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 に行く必要がありますか?
前もって感謝します、ジム