一致するタイプのすべてのプロパティで実装IUserTypeConvention
を使用するための規則を作成しました。ICompositeUserType
public abstract class CompositeUserTypeConvention<TUserType>
: IUserTypeConvention
where TUserType : ICompositeUserType, new()
{
public virtual void Accept(IAcceptanceCriteria<IPropertyInspector> criteria)
{
var userType = new TUserType();
criteria.Expect(x => x.Type == userType.ReturnedClass);
}
public virtual void Apply(IPropertyInstance instance)
{
instance.CustomType<TUserType>();
}
}
これを適用すると、FluentNHibernateは、の規則を使用して複合型の各プロパティの列名を生成します{memberpropertyname}_{compositepropertyname}
。
Money
プロパティAmount
とのような複合型の場合Currency
、エンティティPrice
にタイプと呼ばれるプロパティがある場合Money
、期待される列はとと呼ばれPrice_Currency
ますPrice_Amount
。
この規則を変更してアンダースコアを削除したいのですが、これが可能かどうかはわかりません。