2sxc - 在自定义api控制器

时间:2017-11-07 13:35:20

标签: 2sxc

要在我的自定义API中添加新实体,我使用以下代码:

    var tagGroup = new Dictionary<string, object>();
    tagGroup.Add("Title", "Some new tagGroup name");
    App.Data.Create("TagGroup", tagGroup, "WebApiUser");

如果我只需要添加新实体,这项工作正常,但如果我需要做更多操作,并且在这个操作中我需要使用这个新创建的实体的Id或Guid我不知道如何获得它

一种方法是通过它的标题来获得这个新实体,但是如果这个标题不是唯一的我不知道怎么做?

我尝试使用此代码:

    dynamic obj1 = App.Data.Create("TagGroup", tagGroup, "Web Api User");
    // or
    var obj2 = App.Data.Create("TagGroup", tagGroup, "Web Api User");

但是因为函数没有返回任何值而得到错误..有没有其他方法可以使这项工作?

是否可以像IsPublished那样提前定义新实体的guid?

====================

解决方案1:

var tGuid = System.Guid.NewGuid().ToString();
tagGroup.Add("EntityGuid", tGuid);

正常工作

1 个答案:

答案 0 :(得分:2)

我可以在自定义api控制器中设置EntityGuid以获取新的EntityId

var tGuid = System.Guid.NewGuid();
var tagGroup = new Dictionary<string, object>();
tagGroup.Add("Title", "Some new tagGroup name");
tagGroup.Add("EntityGuid", tGuid);
App.Data.Create("TagGroup", tagGroup, "WebApiUser");

var tNewObj =AsDynamic(App.Data["TagGroup"]).Where(x=>x.EntityGuid==tGuid).First();
var tNewEntityId = tNewObj.EntityId;
// do whatewer you want with this entity..

这是我的最终代码......