I'm having some trouble when I try to insert data using the same objectContext.
My problem is, the order that the Entity read my code is not the order that I "Add" it.
Example:
EntityAB has EntityA's PK as a FK. 1-N relationship.
objContext.DbSet.Add(EntityA);
objContext.DbSet.Add(EntityAB);
objContext.SaveChanges();
Error Message when the code reach SaveChanges()
:
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_EntityAB_EntityA". The conflict occurred in database "dbTest", table "dbo.EntityA", column 'IdEntityA'.
The statement has been terminated.
So, my entity framework is reading objContext.DbSet.Add(EntityAB);
before objContext.DbSet.Add(EntityA);
If I change the code to:
objContext.DbSet.Add(EntityA);
objContext.SaveChanges();
objContext.DbSet.Add(EntityAB);
objContext.SaveChanges();
It works.
But I can't. It need to be done in one SaveChanges()
because of the auditing.
My question is,
CAN I OBLIGATE THE SAVECHANGES() READ THE CODE IN THE ORDER THAT I ADD IT?