Entity Framework - Reassigning child entity's parent

N

Norm

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
 
M

Mr. Arnold

Norm said:
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.

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.eset.com
 
N

Norm

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.eset.com- Hide quoted text -

- Show quoted text -

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
 
N

Norm

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- Hide quoted text -

- Show quoted text -

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,763
Messages
2,569,563
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top