在 2sxc 中,在 App.Data.Create() 之后,有没有办法获取新的 EntityId(或 Guid)或指向新实体的指针?

In 2sxc, after an App.Data.Create(), is there a way to get the new EntityId (or Guid) or a Pointer to the new Entity?

在过去的几年里,我运行 曾几次满足过这个需求。我使用 App.Data.Create() 以编程方式将新实体添加到内容类型,然后需要将该新实体添加到我即将创建的下一个实体(不同内容类型中的新记录)。

由于 .Create() 没有 return 任何东西,什么是获得新项目的最佳、正确或优雅的方式?

这是我的简陋解决方案,但似乎还有更合乎逻辑的方法。同样在繁忙的网站上,如果几乎同时有多个 .Create() ,这可能不起作用。

        // find the newest one with the highest EntityId 
        int maxEntityId = 0; 
        var tmp = AsList(App.Data["Markers"])
          .OrderByDescending(m => m.EntityId)
          .FirstOrDefault()
        ;
        if(tmp != null){
          maxEntityId = tmp.EntityId;
        }

是的,有 :)。

var x = App.Data.Create(...);
// X is now an a IEntity

var dynX = AsDynamic(x);