2sxc - 在自定义 api 控制器中获取新创建的 object 的 EntityId 或 EntityGuid
2sxc - Get EntityId or EntityGuid of newly created object inside custom api controller
为了在我的自定义 API 中添加新实体,我使用如下代码:
var tagGroup = new Dictionary<string, object>();
tagGroup.Add("Title", "Some new tagGroup name");
App.Data.Create("TagGroup", tagGroup, "WebApiUser");
如果我只需要添加新实体,这个工作很好,但是如果我需要做更多的操作并且在这个 opetarions 中我需要使用这个新创建的实体的 Id 或 Guid 我不知道如何得到它.
一种方法是通过标题取回这个新实体,但如果这个标题不是唯一的,我不知道该怎么做?
我尝试使用此代码:
dynamic obj1 = App.Data.Create("TagGroup", tagGroup, "Web Api User");
// or
var obj2 = App.Data.Create("TagGroup", tagGroup, "Web Api User");
但是出现错误,因为函数没有 return 任何值。有没有其他方法可以使它工作?
是否可以像 IsPublished 那样预先定义新实体的 guid?
====================
解决方案 1:
var tGuid = System.Guid.NewGuid().ToString();
tagGroup.Add("EntityGuid", tGuid);
工作正常
我同意在自定义 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..
这是我的最终代码...
更新:2sxc 现在有这个功能。 .Create()
现在 returns 新创建的实体...
为了在我的自定义 API 中添加新实体,我使用如下代码:
var tagGroup = new Dictionary<string, object>();
tagGroup.Add("Title", "Some new tagGroup name");
App.Data.Create("TagGroup", tagGroup, "WebApiUser");
如果我只需要添加新实体,这个工作很好,但是如果我需要做更多的操作并且在这个 opetarions 中我需要使用这个新创建的实体的 Id 或 Guid 我不知道如何得到它.
一种方法是通过标题取回这个新实体,但如果这个标题不是唯一的,我不知道该怎么做?
我尝试使用此代码:
dynamic obj1 = App.Data.Create("TagGroup", tagGroup, "Web Api User");
// or
var obj2 = App.Data.Create("TagGroup", tagGroup, "Web Api User");
但是出现错误,因为函数没有 return 任何值。有没有其他方法可以使它工作?
是否可以像 IsPublished 那样预先定义新实体的 guid?
====================
解决方案 1:
var tGuid = System.Guid.NewGuid().ToString();
tagGroup.Add("EntityGuid", tGuid);
工作正常
我同意在自定义 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..
这是我的最终代码...
更新:2sxc 现在有这个功能。 .Create()
现在 returns 新创建的实体...