0

私はSilverlight 4、Entity Framework 4およびWCF Data Servicesを使用しています。 プレイリストオブジェクトがあるとします。 Playlistオブジェクトにはプロパティがあり、表示オブジェクトに対して0〜1のナビゲーションプロパティで表される外部キーがあります。データベースには、Display_Id列があります。WCFデータサービスでオブジェクト全体ではなく、外部キーを保存します。

データベースから表示オブジェクト全体をロードせずに、プレイリストを保存してdisplay_idを直接設定しようとしています(クエリ文字列の表示IDを取得します)。 私が試してみた:

playlist.Display = new Display() { Id = 3136 }; 
// this SetLink throws an exception that the Display is not yet tracked  
context.SetLink(playlist.Display, "Display", playlist); 
// or i've tried, but get an error: Entities in 'EDM.Displays' participate in the //'DisplayX' relationship. 0 related 'X' were found. 1 'X' is expected 
context.AddToDisplays(playlist.Display); 
context.SetLink(playlist, "Display", playlist.Display); 

が、私は私のEDMを変更する必要があるか、クライアント側でこれを行う方法はありますか?

答えて

1

あなたはそれがデータベースを呼び出すことなく、ローカルに実行だろう、とあなたは別の方法がある

を必要として、あなたが働くことができるobjectSetと

Display d = new Display{ id = 3136 }; 
context.Displays.Attach(d); 

にオブジェクトを添付する必要があるすべての最初:オブジェクトのプレイリストは、オブジェクトが含まれていますDysplayReferenceプロパティがEntityKeyでnullの場合はEntityKeyValuesのキーを置換する

+0

私は、AddToDisplaysメソッドがコンテキストにそれを添付すると信じています。 – Aligned

+0

EFは自分自身を助ける人を助ける;) – ASpirin

関連する問題