Мы используем дизайн с песоном для хранения измененных строк. Для данных, которые нам нужно сохранить, мы используем 2 таблицы; первый с полями, которые не меняются, второй использует мягкое удаление.
+----------+ +---------------+
| TableBase| | Table |
+==========+ +===============+
| Id | | TableId |
| FieldA | | Id |
+----------+ | ReplacedBy |
| FieldB |
| FieldC |
+---------------+
Теперь у нас есть текущие классы:
public abstract class TableBase
{
public virtual int Id { get; protected set; }
public virtual string FieldA {get; set;}
}
public class Table: TableBase
{
public virtual int TableId { get; protected set; }
// ReplacedBy is null: not replaced
public virtual int? ReplacedBy { get; set; }
public virtual string FieldB {get; set;}
public virtual string FieldC {get; set;}
}
Есть ли способ отобразить это с помощью Fluent NHibernate?
, вероятно, является лучшим решением, но нельзя сказать, что мы должны загружать только тогда, когда ReplacedBy
равно нулю.
Где игнорируется отображением и не присутствует в подклассах.