【发布时间】:2010-03-20 07:15:19
【问题描述】:
假设我有一个 II 型 SCD 数据库,基本上只是追加。我正在使用 NHibernate 将对象持久保存到我的数据库中。我有一个像这样的对象:
Pony
|- int Id
|- Guid EntityId
|- string PonyName
|- string PonyColor
|- int RevisionValidFrom
|- int RevisionValidTo
这是一个典型的场景:
Pony myLittlePony = myStable.GetLatestPonyByGuid("0f1ac08a-3328-43db-b278-77c272e4fea3");
myLittlePony.PonyColor = "Fish";
myNHSession.Save(myLittlePony);
我希望能够调用Session.Save(myLittlePony) 并让NHibernate 将旧实体的RevisionValidTo 更新为我指定的任何内容,然后将修改后的Pony 作为新行插入新的Id,基本上就好像它是一个被持久化到数据库中的全新对象。
【问题讨论】:
标签: c# nhibernate versioning