我有一个像这样的模拟类heirachy的场景
创建一些表格,如
我已将其映射到NHibernate,一切正常。
所以现在我想创建这个对象heirachy的编辑版本,并将其持久保存到数据库中。
我正在使用asp.net并希望将编辑更改保存到单独的行中,然后仅在推送发布时将更改提交到实时行。 (我打算从编辑数据到实时数据进行复制)
使用相同的对象模型是否可以将编辑数据存储在单独的表中?
如果不是,我可以创建一个源自Order的EditOrder类,但EditOrder仍会指向OrderLine和Customer。因此,OrderLine和Customer的任何更改都将保存到实时行。 对于NHibernate,似乎我需要创建一个单独的heirachy
没有创建一个通用的庞然大物让你定义这个heirachy中使用的每个类我不知道要走哪条路。
我真的想使用一个类heirachy,而不是维持两个类heirachies。
另一个选项是将对象heirachy序列化为编辑到用户类。但是,如果其中一个类更改,我将不得不消除数据,而不是运行数据库迁移脚本。
另一种解决方案是使用具有不同映射文件的另一个数据库/会话工厂。
处理这样的场景的推荐方法是什么?
答案 0 :(得分:0)
这两组表格支持两种不同的状态(已发布/正在等待批准(或类似))。
如果可能,我建议在模型中明确显示此状态,并将所有内容保存在同一个表中。
然后,已发布对象的客户端必须以某种方式排除未发布的对象。