私が知っている特定のID(以下のサンプルでは、Id = 5のシンボル)をデータベースに格納していると仮定して、別のエンティティにデータベースからロードする必要なしにアタッチすることができます(同じシナリオは "DeleteObject"にも当てはまります)。Entity Frameworkでデータベース呼び出しのないEntityKeyからEntityObjectを構築する
私は次のことを試してみた:
UserSpread spread = UserSpread.CreateUserSpread(5, 500000, 1.1m, 1.5m);
EntityKey symbolKey = new EntityKey("Entities.SymbolSet", "Id", 5);
Symbol symbol = new Symbol();
symbol.EntityKey = symbolKey;
// dealingEntities.Attach(symbol);
spread.Symbol = symbol;
Entities.AddToSpreadSet(spread);
私は「AddToSpreadSet()」メソッドに次の例外を取得:
は、「オブジェクトがあるため、それすでにObjectStateManagerに追加することはできませんObjectContext.Attachを使用すると、既存のキーを持つオブジェクトをアタッチできます。
私はスプレッド(コメント行)に割り当てる前に記号を添付しようとすると、私は「のSaveChanges()」メソッドで次を得る:
「オブジェクトがあるため接続できませんEntityKeyの一部であるプロパティの値が、EntityKeyの対応する値と一致しません。
おかげで、
ニール
ニース!魅力のように動作します、ありがとう! Nir。 – nirpi