使用记录ID更新轮廓表(记录)

时间:2013-05-14 09:14:21

标签: umbraco record insert-update umbraco-contour

我可以通过编程方式(C#)成功创建轮廓,但我无法使用记录ID更新创建的记录。挖了我的头后找不到下面的代码不起作用的原因。这是非常基本的,我想要做的就是获得轮廓中存在的记录。

 RecordStorage recordStorage = new RecordStorage();
 Record r = recordStorage.GetRecord(new Guid("15d654cb-a7c6-4f1f-8b55-0ecd7d19b0e3"));
 recordStorage.Dispose();

只是从更新过程开始,我试图使用它的id来获取记录对象,但不能继续进行,因为它会引发一个奇怪的错误“已经添加了具有相同键的项目。< / strong>“当我调用”storage.GetRecord()“时,我试图设置值时无法理解。以下是堆栈跟踪

**An item with the same key has already been added.**
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at Umbraco.Forms.Data.Storage.RecordFieldStorage.GetAllRecordFields(Record record)
   at Umbraco.Forms.Data.Storage.RecordStorage.GetRecord(Object id)
   at MauriceBlackburn.Service.ContourFormService.InsertRecord(ContourFormFields unionContourForm)

任何想法,我错过了什么,我一整天都在挖掘,但仍然无法解决这个问题。提前谢谢。

非常赞赏。

2 个答案:

答案 0 :(得分:0)

首先,尝试删除工作流程并重新添加。

您还可以创建两个简单的工作流,一个用于编写记录,另一个用于操作它(在编写时使用id)。

答案 1 :(得分:0)

确保数据库中没有相同ID的记录。您可能之前已插入它们。