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."2 行目で例外が発生します。

破棄または削除に関してどのエンティティについて話しているのかわかりません。そのため、この問題に関するヘルプをいただければ幸いです。

コード行は、Silverlight プロジェクトから呼び出される LightSwitch で定義されたインターフェイス関数内にあり、そのプロジェクトから 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次に、データを のプロパティとそれに含まれるオブジェクトのプロパティ (例のプロパティなど)に割り当てることができますがSubContainer、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 に答える