2009-07-15 6 views
0

Aktualisierung ist hier mein Code:ASP.net Dynamic Data - OnPropertyChanging Nicht andere Spalten

partial void OnisApprovedChanging(bool value) 
{    
    this.dateApproved = DateTime.Now;   
} 

‚dateApproved‘ in der Business-Logik aktualisiert wird, aber diese Änderung ist nicht auf die Datenbanktabelle angewendet. Ich habe einige Beispiele gesehen, in denen DateUpdated-Spalten aktualisiert werden, wenn eine Tabelle bearbeitet wird, aber ich bin nur daran interessiert, den Zeitstempel zu aktualisieren, wenn dieses Feld aktualisiert wird, und ich bin mir nicht sicher, wie ich am besten darauf zugreifen kann DataContext von diesem Bereich.

Muss ich den Datenkontext instanziieren und manuell aktualisieren?

EDIT Hat etwas mehr Forschung und festgestellt, dass einige Blogs Business-Logik auf Update wie folgt vorgeschlagen Zugabe:

public partial class DataContext : System.Data.Linq.DataContext 
{ 
    partial void Updateaccount(account instance) 
    { 
     //business logic here  
    } 
} 

Allerdings kann ich keine Möglichkeit, festzustellen, um herauszufinden, ob bestimmte Felder geändert haben . Irgendwelche Ideen?

Antwort

0

Gefunden, dies ist der Weg, um die ursprüngliche Entität zu erhalten und Vergleiche zu machen.

partial void Updateaccount(account instance) 
{    
    account acctPriorToUpdate = accounts.GetOriginalEntityState(instance); 
    if (instance.isApproved != acctPriorToUpdate.isApproved) 
    { 
     //Do Stuff 
    }    
    this.ExecuteDynamicUpdate(instance); 
} 
Verwandte Themen