エンティティの自動マッピングをオーバーライドできるようにするための解決策を見つけようと懸命に努力しています。
実行の流れは、AutoMapping (規則を使用) が最初に発生し、次にマッピングのオーバーライドが実行されるというものです。
私のエンティティ「署名」は既にオートマッパーによってマップされており (オートマッパー ライブラリと混同しないでください!)、いくつかの列のデータベース タイプを変更したいと考えています。
私がこのようなことをすると:
public class SignatureMap : IAutoMappingOverride<Signature>
{
public void Override(AutoMapping<Signature> mapping)
{
mapping.Map(x => x.SignType).CustomSqlType("character varying");
mapping.Map(x => x.Status).CustomSqlType("integer").Nullable();
}
}
NpgsqlParameterCollection
テーブルへの挿入を実行しようとすると、NHibernate エラー(インデックスが範囲外) が発生します。
これはおそらく、mapping.Map
関数が既に存在するマッピングをオーバーライドするのではなく、別のマッピングをコレクションに追加するだけであるためです (FluentNHibernate ソース コードを調べました)。
を使用して Sql 型をオーバーライドする適切な方法は何IAutoMappingOverride
ですか?