RIA Services geben keine Included Type Collection-Eigenschaft zurück

Ich habe eine WCF RIA Services-App und ein Modell mit einem UserRole-Typ, der eine Auflistung von UserPermission-Objekten enthält. Ich verwende .Include ("UserPermission") im Domain-Service und beim Debuggen habe ich überprüft, dass es definitiv die UserPermission-Typen enthält, bevor ich zurückgebe.

Wenn ich den Silverlight 3-Client debugge, werden die UserRoles zurückgegeben, aber die UserPermission-Eigenschaften sind alle leer. Dies sind die gleichen UserRoles, die UserPermissions für den Service anzeigen.

Da auf dem Service und dem Client alles korrekt angezeigt wird, konzentriere ich mich auf die Metadatenklasse, kann aber immer noch nichts Falsches finden.

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

Hier ist die Domain-Service-Methode:

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
}

Hier ist die Silverlight-Client-Methode:

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());
}

Weiß jemand etwas, das einen Verlust dieser enthaltenen Entitäten verursachen könnte? Ich mache dasselbe an mehreren anderen Orten und sie arbeiten.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage