Delete/Update-Viele zu Viele Entity Framework. Kann es nicht funktionieren

Ich m mit EF4 und Probleme mit vielen, vielen Updates und löschen des Elements.
Ich bin zufrieden mit dem einfügen, aber aktualisieren und löschen Sie können nicht, es herauszufinden.

Angenommen ich habe 3 Tabellen und 3 dto-Klassen, die Spiele

  1. Tisch

       ClassID-ClassName 
    
  2. Schüler Tabelle

       StudentID-StudentName
    
  3. StudentClass Tabelle

       StudentID-ClassID
    
    
    ///Happy all works I am using existing students to populate the class. Fine.
    private void InsertClassRoom(ClassRoomDto classRoomDto)
    {
        using (var ctx = new TrainingContext())
        {
            //Convert dto to Entity
            var classRoomEntity = new ClassRoom { ClassID = classRoomDto.ClassId, ClassName = classRoomDto.ClassName };
            foreach (var studentInClass in classRoomDto.Students)
            {
                Student student = ctx.Students.Where(x => x.StudentID == studentInClass.StudentId).SingleOrDefault();
                classRoomEntity.Students.Add(student);
            }
            ctx.AddToClassRooms(classRoomEntity);
            ctx.SaveChanges();
        }
    }
    

Aber ich habe 2 Szenarien, die nicht wissen, was zu tun ist.

  1. Update Klassenzimmer Name
  2. Hinzufügen 1 student
  3. Aktualisieren Sie den Namen, der auf 1 Schüler

Löschen eines Schülers aus der Klasse.

Wie mache ich es?

Dies ist mein Versuch, über update:

private void UpdateClassRoom(ClassRoomDto classRoomDto)
{
    using (var ctx = new TrainingContext())
    {
        var classRoomEntity = new ClassRoom { ClassID = classRoomDto.ClassId, ClassName = classRoomDto.ClassName };
        foreach (var studentDto in classRoomDto.Students)
        {
            if (studentDto.StudentId == 0)
            {
                //it's a new student add it to the classroom
                Student student = new Student { StudentID = studentDto.StudentId, StudentName = studentDto.StudentName };
                classRoomEntity.Students.Add(student);
            }
            else
            {
                //Alter name of the student
                Student student = ctx.Students.Where(x => x.StudentID == studentDto.StudentId).SingleOrDefault();
                //update name
                student.StudentName = studentDto.StudentName;
                //? what do I do finish this attach or ???
           }
        }
        ctx.AddToClassRooms(classRoomEntity);
        ctx.SaveChanges();
    }
}

public void DeleteStudent(ClassRoomDto classRoomDto)
{
    using (var ctx = new TrainingContext())
    {
        //lost on how to delete a student in  many to many 
    }
}
InformationsquelleAutor user9969 | 2010-11-23
Schreibe einen Kommentar