在Silverlight RIA服务中创建PresentationModel的正确方法是什么?

时间:2011-05-25 03:45:55

标签: silverlight mvvm wcf-ria-services presentation

我有搜索员工页面并编辑员工日期。用户可以在员工搜索页面中搜索数据,它将显示员工的名字和姓氏,因此我在演示模型中创建了SearchEmployeeEntity。当用户点击编辑员工时,我将从服务中获取数据,这次我获得名字,姓氏,用户名,生日和其他信息,因此我创建了另一个演示模型名称EmployeeEntity。

我想了一下我的设计,有两种方法可以做到这一点,一种是我刚才解释的,另一种是在两种服务中只使用一种表示模型(EmployeeEntity)。

无论如何,如果我在所有地方使用EmployeeEntry(搜索页面和编辑页面),由于我使用静态DomainContext,因此管理数据非常困难。

请建议我,在Silverlight应用程序中创建演示模型哪种方式很好?

P.S。我在我的客户端使用MVVM。

1 个答案:

答案 0 :(得分:1)

它是同一个实体,所以你只需要一个。不同的是使用它的上下文 - 要么是创建新员工,要么是编辑现有员工。

Silverlight RIA Services将为您处理此问题,因为它知道如何执行更改跟踪。

因此,在编辑时,您将对上下文进行查找并执行LoadOperation,这将从DB返回实体。允许用户在客户端ide上编辑Employee的字段,然后执行SubmitOperation以将更改保留到DB。

对于新员工,您在ViewModel中创建一个新的EmployeeEntity,然后将其添加到Context的Employees集合中。像这样:

EmployeeContext.Employees.Add(Employee);

如果字段填写正确(并且希望您利用Silverlight的超级简单验证规则来确保正确的数据),那么您再次执行SubmitOperation以将新实体保存到数据库。