2

私はEntity Frameworkにかなり慣れていません。次のようなエラーが表示されます

一時的な EntityKey 値を持つオブジェクトは、オブジェクト コンテキストにアタッチできません

私は何か間違ったことをしていると思います。

Customerテーブルと、AddressテーブルAddressに顧客の ID が外部キーとして含まれているテーブルがあります。

新しいアドレスを顧客エンティティに追加してセッションを維持し、次の呼び出しでそれを保存したいと考えています。これはほんの一例です。

using (var db = new MyModel())
{
    Customer cust = db.Customers.SingleOrDefault(c => C.ID == 1);
    Address addr = new Address();
    addr.Street = "123 super st";
    cust.Addresses.Add(addr);   
    Session["customer"] = cust;         
}   

Customer SessionCustomer = (Customer)Session["customer"];
Customer.Comments = "Added new address"; 

using (var db = new MyModel())
{
    db.Customers.Attach(SessionCustomer); //This throws exception: An object with a temporary EntityKey value cannot be attached to an object context
    db.ObjectStateManager.ChangeObjectState(SessionCustomer, System.Data.EntityState.Modified);
    db.SaveChanges(); 
}

どんな助けでも大歓迎です。ありがとうございました。

4

1 に答える 1

0

db.Customers.AddObject()オブジェクトをdatacontextに再アタッチするために を使用してみてください。
これも見てください:http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.addobject.aspx

乾杯

于 2012-04-16T20:02:35.147 に答える