How do I save a transient object that already exists in an NHibernate session?
- by Daniel T.
I have a Store that contains a list of Products:
var store = new Store();
store.Products.Add(new Product{ Id = 1, Name = "Apples" };
store.Products.Add(new Product{ Id = 2, Name = "Oranges" };
Database.Save(store);
Now, I want to edit one of the Products, but with a transient entity. This will be, for example, data from a web browser:
// this is what I get from the web browser, this product should
// edit the one that's already in the database that has the same Id
var product = new Product{ Id = 2, Name = "Mandarin Oranges" };
store.Products.Add(product);
Database.Save(store);
However, trying to do it this way gives me an error:
a different object with the same identifier value was already associated with the session
How do I get around this problem?