一致するタイプのすべてのプロパティで実装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。
この規則を変更してアンダースコアを削除したいのですが、これが可能かどうかはわかりません。