Я использую класс LinqToEntitiesDomainService для обновления базы данных с помощью клиента Silverlight 4.
Существует расширенный метод AttachAsModified для структуры объекта ObjectContext, который позволяет вам указывать исходные значения свойств объекта:
Order original = this.ChangeSet.GetOriginal(currentOrder);
this.ObjectContext.Orders.AttachAsModified(currentOrder, original);
По умолчанию службы WCF RIA не отправляют исходные значения на сервер, поэтому необходимо
применить атрибут [RoundtripOriginal ()] к его сущности.
Однако, даже если я предоставлю исходные значения, SQL, сгенерированный платформой Entity, обновляет все столбцы, а не только измененные. Поскольку метод AttachAsModified () не является собственным методом класса ObjectContext (это расширенный метод, определенный в классе ObjectContextExtensions), я попытался использовать
Метод ApplyOriginalValues, который определен в классе ObjectSet. Без изменений.
Кажется, сущность 4.1, выпущенная недавно, может иметь решение (не уверен). Как насчет сущности 4? Возможно ли EF генерировать sql для обновления только измененных столбцов?