ObjectContext.SavingChanges Gebeurtenis
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vindt plaats wanneer wijzigingen worden opgeslagen in de gegevensbron.
public:
event EventHandler ^ SavingChanges;
public event EventHandler SavingChanges;
member this.SavingChanges : EventHandler
Public Custom Event SavingChanges As EventHandler
Gebeurtenistype
Voorbeelden
In dit voorbeeld wordt een handler geregistreerd voor de SavingChanges gebeurtenis die entiteitsstatusvalidatie uitvoert.
public class AdventureWorksProxy
{
// Define the object context to be provided.
private AdventureWorksEntities contextProxy =
new AdventureWorksEntities();
public AdventureWorksProxy()
{
// When the object is initialized, register the
// handler for the SavingChanges event.
contextProxy.SavingChanges
+= new EventHandler(context_SavingChanges);
}
// Method that provides an object context.
public AdventureWorksEntities Context
{
get
{
return contextProxy;
}
}
// SavingChanges event handler.
private void context_SavingChanges(object sender, EventArgs e)
{
// Ensure that we are passed an ObjectContext
ObjectContext context = sender as ObjectContext;
if (context != null)
{
// Validate the state of each entity in the context
// before SaveChanges can succeed.
foreach (ObjectStateEntry entry in
context.ObjectStateManager.GetObjectStateEntries(
EntityState.Added | EntityState.Modified))
{
// Find an object state entry for a SalesOrderHeader object.
if (!entry.IsRelationship && (entry.Entity.GetType() == typeof(SalesOrderHeader)))
{
SalesOrderHeader orderToCheck = entry.Entity as SalesOrderHeader;
// Call a helper method that performs string checking
// on the Comment property.
string textNotAllowed = Validator.CheckStringForLanguage(
orderToCheck.Comment);
// If the validation method returns a problem string, raise an error.
if (!string.IsNullOrEmpty(textNotAllowed))
{
throw new ArgumentException(String.Format("Changes cannot be "
+ "saved because the {0} '{1}' object contains a "
+ "string that is not allowed in the property '{2}'.",
entry.State, "SalesOrderHeader", "Comment"));
}
}
}
}
}
}
Opmerkingen
De SavingChanges gebeurtenis wordt gegenereerd aan het begin van een SaveChanges bewerking op een ObjectContext. Deze gebeurtenis wordt meestal gebruikt om gewijzigde objecten te valideren voordat nieuwe waarden naar de database worden geschreven.