我正在开发流利的 nhibernate 中的继承策略。一切正常,但我有一个问题。是否有可能通过子类禁用更新基础属性?
这是一个虚拟代码:
public class ObjectA
{
public virtual string StatusA { get; set; }
}
public class ObjectB : ObjectA
{
public virtual string StatusB { get; set; }
}
public class ObjectBMap : SubclassMap<ObjectB>
{
public ObjectBMap()
{
Map(x => x.StatusB);
}
}
当我更新 objectB 时,我不想更新 StatusA。我想在更新 ObjectA 时更改状态 A。nhibernate有这种功能吗?它有道理吗?
编辑:附加 说明我想做这样的事情的原因是在我的系统(asp mvc 应用程序)中,我们有两个不同的地方来管理objectsA 和objectsB。首先我们创建对象 A,然后我们想将对象 A“转换”为对象 B。然后我们可以在两个不同的模块中编辑这两个对象。
我编辑objectB的流程: -从db读取objectB,将其转换为viewmodel -从视图发布表单,将视图数据从表单转换为objectB并在db中更新。
我不想为对象 A 的数据扩展对象 B 的视图模型,将这些数据存储在一些隐藏字段中并从视图模型转换。
我认为如果可以标记 Session.SaveorUpdate(objectB) 无法更新此数据,它将解决我的问题。所以基本上这就是我的问题。