Entity Framework 4 объединяет изменения между двумя сущностями - PullRequest
0 голосов
/ 08 февраля 2011

Я использую ObjectDataSource в приложении ASP.NET.

Использование ASPxGridView.При обновлении он возвращается на уровень доступа к данным и пытается обновить сущность, теперь, как я вижу, при наличии некоторых свойств (Columns, Visible = false), когда сущность прибывает в метод обновления, столбцы visible = false не имеют значений.

Я не хочу показывать все столбцы ... что делать, если мне нужно 3 из 30 столбцов?Поэтому я подумал, что получу исходную сущность из контекста и объединю отличия от обновленной сущности.

Есть идеи, если это может произойти с использованием Entity Framework?Или любой ():)

Спасибо

1 Ответ

1 голос
/ 09 февраля 2011

Вы используете отдельные объекты и изменяете только выбранные свойства => вы единственный, кто знает, какие свойства были изменены, и вы должны написать код для копирования значений из этих свойств в обновленную сущность. Существуют различные способы обновления выбранных свойств - вы можете использовать простой подход или вы можете создать репозиторий .

Edit:

Если вы хотите получить весь объект при вызове update на ObjectDataSource, вы должны передать весь объект в сетку (клиенту). Это означает, что вы привязали все свойства объекта к некоторым элементам управления. Простой подход - использовать элементы управления HiddenField. Но в случае скрытых полей вы не можете быть уверены, что пользователь не изменит опубликованные значения, что приведет к нежелательному обновлению. Например, предположим, что вы публикуете цену продукта в скрытом поле. Если пользователь использует какой-либо инструмент для перехвата запроса и изменения цены, вы обновите его в своей базе данных!

Другой подход заключается в создании вашего собственного веб-элемента управления, который будет хранить значение в ViewState вместо простого скрытого ввода.

...