我正在努力尋找能夠覆蓋我的實體的自動映射的解決方案。FluentNHibernate - 覆蓋已經存在的自動映射
執行流程是首先發生AutoMapping(使用約定),然後執行映射覆蓋。
我的實體「簽名」已由automapper映射(不要與Automapper庫混淆!),我想更改某些列的db類型。
如果我做這樣的事情:試圖執行插入到表時
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();
}
}
我得到NHibernate的錯誤與NpgsqlParameterCollection
(索引超出範圍)。
這可能是因爲mapping.Map
函數只是向集合添加另一個映射,而不是覆蓋已存在的映射(我檢查了FluentNHibernate源代碼)。
什麼是使用IAutoMappingOverride
重寫Sql類型的正確方法?