I have a mapping along the lines of this.
Try that...
public void Override(ModelMapper modelMapper) {
modelMapper.Class<T>(c => {
c.ManyToOne(m => m.FKObj, r => {
r.Column("FKColumn");
r.NotFound(NotFoundMode.Ignore); // THIS IS IMPORTANT!!!
});
});
}
Ok, I found the answer. Add the
not-found="ignore"
attribute to the property KeyField
:
<many-to-one name="KeyField" not-found="ignore" class="Model.Entities.Key, Model" column="field_id" />
In my case the problem was because a foreign key constraint was not enforced by MyISAM engine and therefore one of the rows ended up pointing to a non-existant value and the proxy threw an exception. I would recommend checking your dataset is consistent in this case.