I am trying to copy child entities from a source record and replace child entity in another record.
I tried initializing new list with source record. I dont know if I am using removerange at wrong place.
if (routValue=="merge"&& selectProject1Tests!=null&& selectProject2Tests!=null)
{
if(selectProject1Tests.Length==1)
{
// project 1 test id
int project1TestId = Convert.ToInt32(selectProject1Tests[0]);
// Get test from project 1
ProjectTest project1Test = db.ProjectTests.Where(a => a.ProjectTestID == project1TestId).FirstOrDefault();
// Loop through project 2 selected test and replace test steps
foreach(String project2TestIdStr in selectProject2Tests)
{
// Current project2 test id
int curProject2TestId = Convert.ToInt32(project2TestIdStr);
// Get current project2 Test
ProjectTest curProject2Test = db.ProjectTests.Where(a => a.ProjectTestID == curProject2TestId).FirstOrDefault();
// Remove test steps from this test
db.ProjectTestSteps.RemoveRange(curProject2Test.ProjectTestSteps);
// Add test steps from project 1 test
curProject2Test.ProjectTestSteps = new List<ProjectTestStep>(project1Test.ProjectTestSteps);
//foreach (ProjectTestStep pts in project1Test.ProjectTestSteps)
//{
// curProject2Test.ProjectTestSteps.Add(pts);
//}
}
db.SaveChanges();
Не следует удалять дочерние объекты ProjectTestSteps из исходной записи project1Test. он должен скопировать дочерние сущности ProjectTestSteps из исходной записи project1Test и заменить дочерние сущности ProjectTestSteps другой записи curProject2Test, где я пытаюсь скопировать дочерние сущности.