【问题标题】:Kentico 11 - duplicate object is created after rollbackKentico 11 - 回滚后创建重复对象
【发布时间】:2021-01-03 04:51:07
【问题描述】:

在我为自定义类添加版本控制后(请参阅https://devnet.kentico.com/articles/module-development-versioning-recycle-bin),在使用回滚功能时会创建重复对象(而不是仅更新现有对象)。

因为有人问我我采取的具体步骤,所以他们是:

我有一个名为 StoreInfo 的自定义类。它包含一组字段,如姓名、地址、国家等。

为了启用版本控制,我在生成的代码中添加了以下更改:

public class StoreInfo : AbstractInfo<IndustryInfo>
{
    ...

    public static ObjectTypeInfo TYPEINFO = new ObjectTypeInfo(...)
    {
      ...
      SupportsVersioning = true
    };

    ...        
 
    protected override bool VersioningEnabled
    {
      get
      {
        return SettingsKeyInfoProvider.GetBoolValue("CMSEnableObjectsVersioning");
      }
   }
}

应用此更改后,版本选项卡出现在 UI 界面中:

然后我把店名从Test name改成了Test name 1,于是版本1.1就被添加到版本列表中了:

当我点击这个按钮时发生了问题:

不是将现有商店的名称从Store name 1 更新回Store name,而是使用版本1.0 的数据创建了一个新商店:

任何关于为什么会发生这种情况的想法都会有所帮助。

Kentico 版本是 11。(开发方法 - 门户引擎)

【问题讨论】:

    标签: kentico kentico-11


    【解决方案1】:

    如果您删除了对象 1,然后创建了一个“新”对象 1,并尝试回滚删除原始对象 1,它将创建一个新对象,因为它们没有相同的属性,尤其是 GUID。

    因此,您可能需要准确指定删除对象时执行的步骤、删除对象后执行的操作以及回滚原始对象时执行的操作。

    【讨论】:

    • 布伦登,感谢您的回复。我添加了一个更详细地描述问题的附加描述。
    • 对所有字段进行比较(在版本比较中选中该框)并比较所有字段@hopeless。您可能会在那里发现一些不同的额外数据,从而导致创建新对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 2013-12-28
    相关资源
    最近更新 更多