Как правильно создать PresentationModel в RIA-сервисе Silverlight? - PullRequest
0 голосов
/ 25 мая 2011

У меня есть страница поиска сотрудников и редактирование даты сотрудников. Пользователь может искать данные на странице поиска сотрудников, и там будут отображаться имя и фамилия сотрудника, поэтому я создаю SearchEmployeeEntity в своей модели презентации. Когда пользователь нажимает кнопку Изменить сотрудника, я получаю данные из службы, на этот раз я получаю имя, фамилию, имя пользователя, день рождения и другую информацию, поэтому я создаю другое имя модели презентации EmployeeEntity.

Некоторое время я думаю о своем дизайне, есть два способа сделать это: один, как я только что объяснил выше, другой - использовать только одну модель представления (EmployeeEntity) в обоих сервисах.

В любом случае, если я использую EmployeeEntry везде (страница поиска и страница редактирования), довольно сложно управлять данными, поскольку я использую статический DomainContext.

Подскажите, пожалуйста, каким способом можно создать модель презентации в приложении Silverlight?

P.S. Я использую MVVM на моем клиенте.

1 Ответ

1 голос
/ 25 мая 2011

Это одно и то же лицо, поэтому вам нужен только один. Отличается контекст, в котором он используется - либо вы создаете нового сотрудника, либо редактируете существующего.

Службы Silverlight RIA позаботятся об этом, поскольку они знают, как выполнять отслеживание изменений.

Итак, когда вы редактируете, вы выполните поиск в вашем контексте и выполните операцию LoadOperation, которая вернет вам объект из БД. Разрешить пользователю редактировать поля Employee на клиентском компьютере, а затем выполнить SubmitOperation, чтобы сохранить изменения в БД.

Для новых сотрудников вы создаете новый EmployeeEntity в своей модели представления, а затем добавляете его в коллекцию сотрудников контекста. Вот так:

EmployeeContext.Employees.Add(Employee);

Когда поля заполнены правильно (и, надеюсь, вы используете сверхлегкие правила проверки Silverlight для обеспечения правильности данных), вы снова выполняете SubmitOperation для сохранения нового объекта в БД.

...