У меня есть сценарий, где у меня есть родительский класс с некоторыми определениями, которые мы можем вызвать, если Foo должен быть уникальным, а затем дочерний класс, который я выбрал для вызова Bar. Вместе они делают Foo Bar! :)
public class Foo
{
public Foo()
{
Bars = new List<Bar>();
}
// Internal id only, should probably not even map it
public virtual int Id { get; set; }
// A hashed searchable id
public virtual string UId { get; set; }
public virtual DateTime CreatedAt { get; set; }
public virtual DateTime UpdatedAt { get; set; }
public ICollection<Bar> Bars { get; private set; }
}
public class Bar
{
public virtual int Id { get; set; }
public virtual long Version { get; set; }
public virtual DateTime CreatedAt { get; set; }
public virtual SomeHash { get; set; }
public virtual Foo Foo { get; set; }
}
Я могу довольно легко отобразить это как свободно, так и в формате xml. То, что я не знаю, как отобразить, это следующий сценарий: мне никогда не нужно ничего обновлять здесь. Как только что-то меняется, я должен просто вставить новую строку. Никогда не обновляйте и не удаляйте, и я не могу найти информацию о том, как решить эту проблему, хотя знаю, что это действительно возможно. Как мне сообщить NHibernate, что каждое изменение в таблице версий должно вызывать вставку?