Entity Frameworkと外部キーの関係を作成する方法

asp.net-mvc entity-framework foreign-key-relationship

質問

データベース内に、外部キーの関係がいくつかあるテーブル上に新しい行を作成したいのですが、どの順序およびどのような呼び出しを行う必要があるのかを把握できていません。これは私がこれまでに持っているものです:

db.Models.Order order = DB.Models.Order.CreateOrder( apple );
order.CustomerReference.Attach( ( from c in db.Customer where c.Id == custId select c ).First() );
db.SaveChanges();

コードは2行目で失敗しています。

この関連エンドに関連付けられているソースオブジェクトが追加、削除、または切り離された状態にある場合、添付は有効な操作ではありません。 NoTrackingマージオプションを使用してロードされたオブジェクトは常にデタッチされます。

何か案は?

受け入れられた回答

(文法修正のためのジョンに感謝します)

それで私はそれを考え出しました。これはあなたがしなければならないことです:

db.Models.Order order = DB.Models.Order.CreateOrder( apple );
order.Customer = (from c in db.Customer where c.Id == custId select c).First();
db.SaveChanges();

それが人々の役に立つことを願っています。


人気のある回答

実体参照を使用しないのはなぜですか?あなたの方法は余分なSELECTステートメントを引き起こすでしょう。

もっと良い方法は、 CustomerReferenceクラスとEntityKeyを使うことです。

order.CustomerReference = new System.Data.Objects.DataClasses.EntityReference<Customers>();
order.CustomerReference.EntityKey = new EntityKey("ModelsEntities.Customers", "Id", custId);


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ