0

尝试定义另一条数据中包含的数据成员时遇到此异常。

例子:

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 项目。

4

2 回答 2

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它所包含的对象的属性和属性(例如 exampleSubContainer的属性),尽管显然在指示 LightSwitch 保存其数据之前不会保存新记录。

于 2012-11-01T09:35:31.970 回答
0

您的代码需要稍作更改:

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

如果导航属性不称为SubContainers,只需将其替换为正确的名称。

于 2012-11-01T05:32:42.193 回答