我有一个WCF RIA Services应用程序和一个包含UserPermission对象集合的UserRole类型的模型。在域服务中,我使用.Include("UserPermission"),当我进行调试时,我已经验证它在返回之前绝对包含了UserPermission类型。
当我调试Silverlight 3客户端时,它返回了UserRoles,但UserPermission属性都是空的。这些UserRoles与服务上显示有UserPermissions相同。
由于服务和客户端上似乎一切正常,因此我专注于元数据类,但仍然找不到任何错误。
有人知道可能导致这些实体丢失的原因吗?我在其他几个地方也做了同样的事情,它们是正常工作的。
当我调试Silverlight 3客户端时,它返回了UserRoles,但UserPermission属性都是空的。这些UserRoles与服务上显示有UserPermissions相同。
由于服务和客户端上似乎一切正常,因此我专注于元数据类,但仍然找不到任何错误。
[MetadataTypeAttribute(typeof(UserRole.UserRoleMetadata))]
public partial class UserRole
{
internal sealed class UserRoleMetadata
{
public int RoleID;
public string Name;
[Include]
[Association("UserPermissions", "RoleID", "PermissionID")]
public EntityCollection<UserPermission> UserPermissions;
}
}
以下是域服务方法:
public IEnumerable<UserRole> GetUserRoles()
{
IEnumerable<UserRole> roles = this.ObjectContext.UserRole.Include("UserPermissions");
return roles; // In debug, roles.First().UserPermissions.Count = 2 here
// For now, there is only one single role in the ObjectContext and it has
// two UserPermissions
}
这是 Silverlight 客户端方法:
context.Load(context.GetUserRolesQuery(), loadOp =>
{
IEnumerable<UserRole> roles = loadOp.Entities;
// This should show 2, but shows 0:
MessageBox.Show("Permissions loaded: " + roles.First().UserPermissions.Count.ToString());
}
有人知道可能导致这些实体丢失的原因吗?我在其他几个地方也做了同样的事情,它们是正常工作的。