2

エンティティフレームワークでado.netデータサービスを使用してSilverlightクライアントを使用しています。

外部キー関係船に関連するエンティティ連絡先とエンティティアドレスがあります...連絡先には1つ以上のアドレスを含めることができますが、アドレスには常に少なくとも1つの連絡先が必要です..かなり基本的な...

メソッドAdd(Tエンティティ)を持つ連絡先とアドレスのリポジトリがあります...

私のクライアントには、ユーザーが住所の連絡先を追加できるフォームがあります

両方をデータベースに保存したい...

Address a = new Address();
a.Street="Street",
a.City = "City"
a.Contact = 
 new Contact(){ Name="Name",Age="60"}

_repository.Add(a);

....

関連するオブジェクトグラフをすぐに保存できないことがわかったので、次のようにしました

DataBaseEntities.AddToContact(obj2Badded.Contact);
DataBaseEntities.AddToAddress(obj2Badded);
DataBaseEntities.SetLink(obj2Badded,"Contact",object2Badded.Contact);
DataBaseEinties.BeginSaveChanges(...)

連絡先が追加されていない場合、アドレスも追加されない、またはその逆のように、トランザクションでこれを行う方法はありますか?

...そして私が試したすべてが機能していません...

誰かがこのトピックについて正しい方向に私を向けることができれば素晴らしいと思います。関連するオブジェクトグラフを追加したいだけです=}...

4

2 に答える 2

0

最初の例は、関連するエンティティとすべてがうまく機能するはずです。両方に新しいオブジェクトを挿入する場合、関連するエンティティをコンテキストに個別に追加する必要はありません。したがって、このコードを実行したときに何が問題なのかを教えていただけない限り、解決するのは難しいでしょう。

于 2009-03-17T14:31:06.867 に答える
0

私は同様の問題を抱えていましたが、次のようなものを追加した後、うまくいきました

DatabaseEntities.UpdateObject(obj2Badded);

直前

DatabaseEntities.BeginSavingChanged();

これは、プロジェクトに edmx を含めて ObjectContext を使用する場合は必要ありませんが、Service 参照を作成し、生成された DataServiceContext を使用する場合は必要です。

于 2012-03-20T14:06:38.760 に答える