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

Umbraco 使用记录ID更新轮廓表(记录),umbraco,record,insert-update,umbraco-contour,Umbraco,Record,Insert Update,Umbraco Contour,我可以通过编程(C#)成功地在contour中创建条目,但我无法使用记录ID更新创建的记录。仔细研究后,我找不到以下代码不起作用的原因。这是非常基本的,我要做的就是得到存在于轮廓中的记录 RecordStorage recordStorage = new RecordStorage(); Record r = recordStorage.GetRecord(new Guid("15d654cb-a7c6-4f1f-8b55-0ecd7d19b0e3")); recordStorage.Di

我可以通过编程(C#)成功地在contour中创建条目,但我无法使用记录ID更新创建的记录。仔细研究后,我找不到以下代码不起作用的原因。这是非常基本的,我要做的就是得到存在于轮廓中的记录

 RecordStorage recordStorage = new RecordStorage();
 Record r = recordStorage.GetRecord(new Guid("15d654cb-a7c6-4f1f-8b55-0ecd7d19b0e3"));
 recordStorage.Dispose();
仅从更新过程开始,我尝试使用记录对象的id获取记录对象,但无法继续,因为它抛出了一个奇怪的错误“已经添加了一个具有相同密钥的项。”我无法理解它在调用“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)
任何想法,我是否错过了什么,我已经挖掘了一整天,但仍然无法找出这个问题。提前谢谢


非常感谢。

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


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

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

Hi@madebybear,谢谢您的回复。抱歉,我有点困惑,如何使用工作流编辑记录。我以编程方式做所有事情,即插入记录并更新它。表单字段实际上来自移动应用程序。有没有其他方法可以实现这一点?我们可以在我们的网站umbraco.org上询问这一点