Здравствуйте, Dog, Вы писали:
Dog>Я так понимаю что update использует закэшированый ObjectMapper, который немного "кривоват" для него. Это баг или так и должно быть ?
Dog>В общем, куда копать ? Руками писать update не хочется
это не баг, это фича

мапер правильный.
а SqlQueryBase — безхитростный как сапог — есть мембер маппер и поле не помечено как Map\SqlIgnore\NonUpdatable — пойдет в запрос.
что делать... нууууу....
у меня есть несколько вариантов:
1) использовать ExecuteResultSet или иным, схожим, образом заполнять отношения.
2) допилить булкит, шоб он умел делать так:
[MapField("Bar_ID", "Bar.ID")]
[MapField("Bar_Name", "Bar.Name")]
[NonUpdatable("Bar_Name")]
public class Foo
{
public int ID;
public Bar Bar;
public Foo()
{
Bar = new Bar();
}
}
public class Bar
{
public int ID;
public string Name;
public string Name2;
}