1
我遇到了RIA服务从服务器返回3个实体的问题(我在服务器进程上调试时已经验证过,并通过Fiddler验证过服务是面的返回3个实体RIA服务:服务器进程返回多个实体,但客户端显示1个实体重复
我使用MVVM所以我呼吁在客户端加载使用我从肖恩Wildermuth样品借来一个辅助函数:下面是代码:
// Generic query handling
protected void PerformQuery<T>(DomainContext dc, string name, EntityQuery<T> qry, EventHandler<EntityResultsArgs<T>> evt) where T : Entity
{
dc.Load<T>(qry,(r) =>
{
if (evt != null)
{
try
{
if (r.HasError)
{
evt(this, new EntityResultsArgs<T>(r.Error));
}
else if (r.Entities.Count() > 0)
{
evt(this, new EntityResultsArgs<T>(r.Entities));
}
}
catch (Exception ex)
{
evt(this, new EntityResultsArgs<T>(ex));
}
}
}, null);
}
EntityResultsArgs是一个简单的类,它公开一个异常属性(称为Error)和一个Results属性(containsi如果我们有任何结果的话)。
在服务器上,我们使用AutoMapper将结果映射到我们公开的Domain Classes,并且此特定服务调用返回IEnumerable。
我错过了什么(或什么更能帮助别人解决这个问题)。
谢谢!
检查您的PK定义并确保RIA服务知道哪个列是唯一的。 – 2010-09-17 16:39:11
顺便说一下,当我在“evt(this,new EntityResultsArgs(r.Entities))”上设置断点时;“线我得到3结果全部dups。如果我在RIA Services生成的实体的名称属性上设置了一个断点,我会看到所有的数据都被设置了..(但是我最终得到了3次而不是3次不同的记录) –
DevTheo
2010-09-17 16:42:26
关键属性设置在正确的字段上 – DevTheo 2010-09-17 16:43:29