Serviços RIA não retornando propriedade de coleção de tipo incluído

Eu tenho um aplicativo WCF RIA Services e um modelo com um tipo UserRole que contém uma coleção de objetos UserPermission. Eu uso .Include ("UserPermission") no serviço de domínio e, quando eu depuro, verifiquei que ele definitivamente contém os tipos de UserPermission antes de retornar.

Quando depuro o cliente Silverlight 3, ele retorna os UserRoles, mas as propriedades UserPermission estão todas vazias. Esses são os mesmos UserRoles que mostram ter UserPermissions no serviço.

Como tudo parece correto no serviço e no cliente, estou me concentrando na classe de metadados, mas ainda não consigo encontrar nada errado.

[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;
    }
}

Aqui está o método de serviço de domínio:

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
}

Aqui está o método do cliente 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());
}

Alguém sabe de algo que possa causar a perda dessas entidades incluídas? Eu faço a mesma coisa em vários outros lugares e eles funcionam.

questionAnswers(1)

yourAnswerToTheQuestion