Entity Framework - Reassigning child entity's parent

Entity Framework - Reassigning child entity's parent

Post by Norm » Sun, 05 Jul 2009 08:57:23


The following seems like a simple enough operation, but for some
reason I can't figure it out.

In a parent-child relationship I want to move a child to a different
parent. I figured that it would be as easy as
"Parent.ChildCollection.Attach(ChildToTransfer)" but it doesn't work.
All of the entities are attached to the same object context and
already exist in the database. No inserting here, just updating.

At the time that ".SaveChanges()" is called on the container, the
states of the various entities are thus:
Parent.EntityState = Modified (Due to other code)
Parent.ChildCollection contains the ChildToTransfer
Child.Parent = The new Parent (correct)
BUT Child.EntityState = Unchanged

The parent gets updated, but the child record doesn't.

Any help would be appreciated and thanks in advance.

- Norm
 
 
 

Entity Framework - Reassigning child entity's parent

Post by Mr. Arnol » Sun, 05 Jul 2009 09:38:18


Well, I have over 40 entities on the EF model using a WCF Web service on the
backend that has the BLL and the DAL behind the WCF Web service SOA
solution, used by an ASP.NET UI front-end.

I learned to remove the associations/relationships between entities on the
model, keeping the constants on the SQL tables themselves.

That way, I have complete control of the EF model, no surprises.



__________ Information from ESET NOD32 Antivirus, version of virus signature database 4214 (20090703) __________

The message was checked by ESET NOD32 Antivirus.

http://www.yqcomputer.com/

 
 
 

Entity Framework - Reassigning child entity's parent

Post by Norm » Wed, 08 Jul 2009 02:32:20


Mr. Arnold,

While that is a valid answer, I am not in a posistion where I can redo
the model in such a way. After running into this and seeing your
answer (and the lack of anyone elses), I am inclined to not use EF in
the future. However, I am still in need of a solution for my current
project.

- Norm
 
 
 

Entity Framework - Reassigning child entity's parent

Post by Norm » Wed, 08 Jul 2009 04:28:10


I have found the problem. It (of course) had nothing to do with the
Entity Framework.
/sigh

Note: "Parent.ChildCollection.Attach(ChildToTransfer)" is not correct.
Use "ChildToTransfer.Parent = NewParent"

- Norm
 
 
 

Entity Framework - Reassigning child entity's parent

Post by Mr. Arnol » Wed, 08 Jul 2009 05:09:37


I have found the problem. It (of course) had nothing to do with the
Entity Framework.
/sigh

Note: "Parent.ChildCollection.Attach(ChildToTransfer)" is not correct.
Use "ChildToTransfer.Parent = NewParent"


Well, no matter what ORM solution one uses including nHibernate and others,
there is always going to be a learning curve.


__________ Information from ESET NOD32 Antivirus, version of virus signature database 4219 (20090705) __________

The message was checked by ESET NOD32 Antivirus.

http://www.yqcomputer.com/