我在尝试定义包含在另一段数据中的数据成员时遇到此异常。
示例:
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项目调用,将数据从该项目传递到LightSwitch项目。
答案 0 :(得分:1)
我最终设法做到这一点,我需要在'逻辑'线程,我不是。我花了一点时间试图找到一个this.DataContext
,但不能(我的Silverlight项目有这个但不是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才会保存新记录被指示保存其数据。
答案 1 :(得分:0)
您的代码需要稍微更改一下:
Container newRecord = this.DataWorkspace.ApplicationData.Containers.AddNew();
SubContainer newSub = newRecord.SubContainers.AddNew();
如果导航属性未被称为 SubContainers ,则只需使用正确的名称替换它。