简体   繁体   中英

How to save a related entity using Entity Framework in asp.net

I am pretty new to Entity Framework. I am getting an error as

An object with a temporary EntityKey value cannot be attached to an object context

I think I am doing something wrong.

I have a Customer table and Address table where the Address table has customer's ID as foreign key.

I want to add a new address to the customer entity and keep in session and in next call I want to save it. this is only an example.

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(); 
}

Any help is appreciated. thank you.

Try using db.Customers.AddObject() for reattaching object to datacontext.
Take also a look at this: http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.addobject.aspx

Cheers

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM