Procedura: collegare un'entità esistente a DataServiceContext (WCF Data Services)
Quando un'entità esiste già in un servizio dati, la libreria client di WCF Data Services consente di collegare un oggetto che rappresenta l'entità direttamente a DataServiceContext senza prima eseguire una query. Per ulteriori informazioni, vedere Aggiornamento del servizio dati (WCF Data Services).
Nell'esempio riportato in questo argomento vengono utilizzati il servizio dati Northwind di esempio e le classi del servizio dati client generate automaticamente. Questo servizio e le classi di dati client vengono creati al completamento della Guida rapida di WCF Data Services.
Esempio
Nell'esempio seguente viene illustrato come creare un oggetto Customer
esistente contenente modifiche da salvare nel servizio dati. oggetto viene collegato al contesto e viene chiamato il metodo UpdateObject per contrassegnare l'oggetto collegato come Modified prima della chiamata del metodo SaveChanges.
' Create the DataServiceContext using the service URI.
Dim context = New NorthwindEntities(svcUri)
' Define an existing customer to attach, including the key.
Dim customer As Customer = _
customer.CreateCustomer("ALFKI", "Alfreds Futterkiste")
' Set current property values.
customer.Address = "Obere Str. 57"
customer.City = "Berlin"
customer.PostalCode = "12209"
customer.Country = "Germany"
' Set property values to update.
customer.ContactName = "Peter Franken"
customer.ContactTitle = "Marketing Manager"
customer.Phone = "089-0877310"
customer.Fax = "089-0877451"
Try
' Attach the existing customer to the context and mark it as updated.
context.AttachTo("Customers", customer)
context.UpdateObject(customer)
' Send updates to the data service.
context.SaveChanges()
Catch ex As DataServiceClientException
Throw New ApplicationException( _
"An error occurred when saving changes.", ex)
End Try
// Create the DataServiceContext using the service URI.
NorthwindEntities context = new NorthwindEntities(svcUri);
// Define an existing customer to attach, including the key.
Customer customer =
Customer.CreateCustomer("ALFKI", "Alfreds Futterkiste");
// Set current property values.
customer.Address = "Obere Str. 57";
customer.City = "Berlin";
customer.PostalCode = "12209";
customer.Country = "Germany";
// Set property values to update.
customer.ContactName = "Peter Franken";
customer.ContactTitle = "Marketing Manager";
customer.Phone = "089-0877310";
customer.Fax = "089-0877451";
try
{
// Attach the existing customer to the context and mark it as updated.
context.AttachTo("Customers", customer);
context.UpdateObject(customer);
// Send updates to the data service.
context.SaveChanges();
}
catch (DataServiceClientException ex)
{
throw new ApplicationException(
"An error occurred when saving changes.", ex);
}