Frage

Ich habe einen Silverlight 4 RIA-Domänenservice.In einer bestimmten Methode muss ich einen Wert in der Datenbank ändern (natürlich).Dazu bekomme ich die Entität, ändern Sie den einen Wert, dann muss ich diese Änderung wieder in den DB speichern.

Ich habe versucht, die generierte Update-Funktion der Entität aufzurufen, die nur this.ObjectContext anruft.Die Änderung kommt jedoch nie wieder in die Datenbank.

Wie spare ich Werte von der Server-Seite (dh der Kunde hat diese Daten nie vorhanden)?

War es hilfreich?

Lösung 2

Turns out, attaching the object before or after the change makes no difference. The missing peice was :

this.ObjectContext.SaveChanges();

Andere Tipps

You should know that the UpdateXXX method doesn't actually submit the changes to the database - that only happens a bit later. knowing this, we can change the default implementation of the UpdateXXX method: (I'm assuming XXX == Product here)

    public void UpdateProduct(Product currentProduct)
    {
        this.ObjectContext.Products.AttachAsModified(currentProduct, this.ChangeSet.GetOriginal(currentProduct));
    }

to

    public void UpdateProduct(Product currentProduct)
    {
        // This line only reattach the entity back to EF context, it doesn't submit changes yet
        this.ObjectContext.Products.AttachAsModified(currentProduct, this.ChangeSet.GetOriginal(currentProduct));

        currentProduct.SomeProperty = "SomeChange"; // This change is going to be submitted later
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top