私はこのように定義されているクラスがあります。NHibernateは:一般的な列挙型のプロパティを持つマッピングクラス
:public enum CarState
{
Stopped = 1,
Moving = 2
}
public enum OrderState
{
Ordered = 1,
Delivered = 2
}
は、私は2つのタイプを持つことができます。State
プロパティが列挙型である
public class StateMachineMetadata<T> where T: struct
{
public virtual int ID { get; protected set; }
public virtual T State { get; set; }
public virtual DateTime DateChanged { get; set; }
}
を
StateMachineMetadata<CarState>, StateMachineMetadata<OrderState>
テーブルNHibernateを使用して?
=== ===更新
回避策一般的な部分は、インタフェースに移動できるように:
public interface IStateMachineMetadata<T> where T: struct
{
int ID { get; }
T State { get; set; }
DateTime DateChanged { get; set; }
}
public class StateMachineMetadataBase
{
public virtual int ID { get; protected set; }
public virtual DateTime DateChanged { get; set; }
}
public class CarStateMachineMetadata
: StateMachineMetadataBase, IStateMachineMetadata<CarState>
{
public virtual CarState State { get; set; }
}
ありがとう、エンリコ。 – Jekas
@Jekasあなたの質問に答えましたか? –
しかし、私はまだ解決策を探していますが、IUserTypeを使ったいくつかの回避策があるかもしれません。あるいは、具体的な型で動作する可能性もあります。 – Jekas