RIA服务对所包含实体的验证

时间:2011-02-21 00:18:51

标签: silverlight validation wcf-ria-services entities

我正在使用Silverlight 4中的MVVM模式的RIA服务。

我有一个页面,显示了创建新对象的字段列表。

我有一个Place实体和一个GeneralInfo实体,它包含在Place实体中,使用类的属性中的Include和查询来检索一个地方。

除验证外,一切正常。

当我在保存之前验证Place实体时,验证仅在Place实体上完成,而不是在GeneralInfo实体上完成。

有不同的奇怪行为:

如果我只是让字段为空,那么只有Place实体的字段已经过验证并标记为红色。

如果那时我正确填写了Place实体的字段,那么当我保存它时,我得到一个异常,说我要检查entitiesInError集合,然后如果无效则将GeneralInfo实体的字段标记为红色。

另一种情况是,如果对于必填字段,例如,我输入一些文本然后将其删除,那么当我按Tab离开字段并转到下一个字段时,该字段将标记为红色,并且错误消息,它也适用于常规信息实体字段。

在验证数据时,如何以红色标记GeneralInfo实体字段,我该怎么办?

祝你好运, 丹尼尔

1 个答案:

答案 0 :(得分:0)

问题不在于我有一个实体包含在另一个实体中。那是因为TryValidateObject只执行“必需”验证。我们必须将最后一个参数设置为true以验证所有验证类型(Range Stringlength ...)。