RIA Services не возвращает Включенный Тип Собственность Собрания
У меня есть приложение WCF RIA Services и модель с типом UserRole, которая содержит коллекцию объектов UserPermission. Я использую .Include («UserPermission») в доменной службе, и когда я отлаживаю его, я проверил, что он определенно содержит типы UserPermission перед возвратом.
Когда я отлаживаю клиента 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());
}
Кто-нибудь знает что-нибудь, что может привести к потере этих включенных объектов? Я делаю то же самое в нескольких других местах, и они работают.