如果实体已存在于数据服务中,使用 WCF 数据服务 客户端库可以将表示该实体的对象直接附加到 DataServiceContext 中,而不必首先执行查询。 有关更多信息,请参见更新数据服务(WCF 数据服务)。
本主题中的示例使用 Northwind 示例数据服务和自动生成的客户端数据服务类。 此服务和这些客户端数据类是在完成 WCF 数据服务快速入门时创建的。
示例
下面的示例演示如何创建一个现有 Customer 对象,该对象包含将保存到数据服务的更改。 该对象附加到上下文中,并调用 UpdateObject 方法将附加的对象标记为 Modified,然后再调用 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);
}