Entity Framework speichert keine geänderten untergeordneten Elemente

Das ist frustrierend. Im Folgenden sind zwei verwandte Objekte aufgeführt, die vom Entity Framework für die erste Datenbank generiert wurden:

public partial class DevelopmentType
{
    public DevelopmentType()
    {
        this.DefaultCharges = new HashSet<DefaultCharge>();
    }

    public System.Guid RowId { get; set; }
    public string Type { get; set; }

    public virtual ICollection<DefaultCharge> DefaultCharges { get; set; }
}

public partial class DefaultCharge
{
    public System.Guid RowId { get; set; }
    public decimal ChargeableRate { get; set; }
    public Nullable<System.Guid> DevelopmentType_RowId { get; set; }

    public virtual DevelopmentType DevelopmentType { get; set; }
}

Hier ist der Code, den ich aufrufe, um einen DevelopmentType zu speichern - es handelt sich um einen Automapper, da wir Entitätsobjekte von DTOs unterscheiden:

    public void SaveDevelopmentType(DevelopmentType_dto dt)
    {
        Entities.DevelopmentType mappedDevType = Mapper.Map<DevelopmentType_dto, Entities.DevelopmentType>(dt);
        _Context.Entry(mappedDevType).State = System.Data.EntityState.Modified;

        _Context.DevelopmentTypes.Attach(mappedDevType);
        _Context.SaveChanges();
    }

In meiner Benutzeroberfläche besteht die häufigste Operation darin, dass sich ein Benutzer eine Liste der Entwicklungstypen ansieht und deren DefaultCharge aktualisiert. Wenn ich das mit dem obigen Code teste, läuft es ohne Fehler, aber es ändert sich nichts.

Wenn ich im Debugger pausiere, ist klar, dass die geänderte DefaultCharge an die Funktion übergeben wird und dass sie an den zu speichernden DevelopmentType angehängt ist.

Schritt für Schritt, wenn ich den Wert manuell in Visual Studio änderetut&nbsp;Speichern Sie den aktualisierten Wert. Welches ist nur noch verwirrender.

Die Überwachung der Datenbank mit SQL Server Profiler zeigt, dass Aktualisierungsbefehle ausgegeben werdennur&nbsp;für das übergeordnete Objekt undnicht&nbsp;für angehängte Objekte.

Ich habe an anderer Stelle einen ähnlichen Code, der wie erwartet funktioniert. Was mache ich hier falsch?

BEARBEITEN:

Ich habe festgestellt, dass, wenn Sie dies vor dem Aufruf von SaveDevelopmentType tun:

        using (TransactionScope scope = new TransactionScope())
        {
            dt.Type = "Test1";
            dt.DefaultCharges.First().ChargeableRate = 99;
            _CILRepository.SaveDevelopmentType(dt);
            scope.Complete();
        }

Die Änderung von Typ wird gespeichert, die Änderung von ChargeableRate jedoch nicht. Ich denke nicht, dass es massiv hilft, aber ich dachte, ich würde es hinzufügen.