我在尝试定义另一个数据中包含的数据成员时会遇到此例外。
示例:
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 ,请用正确的名称替换。