灯开关 - "Reference properties cannot be set to deleted or discarded entities."



我在尝试定义另一个数据中包含的数据成员时会遇到此例外。

示例:

Container newRecord = this.DataWorkspace.ApplicationData.Containers.AddNew();
newRecord.SubContainer = this.DataWorkspace.ApplicationData.SubContainers.AddNew();

与第二行遇到的例外"Reference properties cannot be set to deleted or discarded entities."

我不明白它在丢弃或删除的实体在谈论什么实体,因此对此问题的任何帮助都将不胜感激。

代码线在Lightswitch中定义的接口函数中,该函数从Silverlight项目中称为"该项目"。

我最终设法做到了我需要在'逻辑'线程上,而我不是。我花了一点时间搞砸了,试图找到this.DataContext,但不能(我的Silverlight Project有这个,但没有Lightswitch项目)。

最终我发现了我需要做的事情:

this.Details.Dispatcher.BeginInvoke(() =>
{
Container newRecord = this.DataWorkspace.ApplicationData.Containers.AddNew();
newRecord.SubContainer = this.DataWorkspace.ApplicationData.SubContainers.AddNew();
newRecord.exampleIntProperty=2;
newRecord.SubContainer.innerString="Example";
});
然后,我可以将数据分配给newRecord的属性及其包含的对象的属性(例如示例SubContainer的属性),尽管显然,直到指示LightSwitch保存其数据才能保存新记录。<<<<<<<<<<<<<<<<<<<<

您的代码需要稍微更改:

Container newRecord = this.DataWorkspace.ApplicationData.Containers.AddNew();
SubContainer newSub = newRecord.SubContainers.AddNew();

如果导航属性未称为 sub -containers ,请用正确的名称替换。

相关内容

最新更新