Как вернуть иерархический граф с сервисами RIA - PullRequest
2 голосов
/ 15 ноября 2011

Мне бы хотелось получить DomainService следующим образом:

 [EnableClientAccess]
    public class FamilyService : DomainService
    {
        public IQueryable<Person> GetPeople() // for the time being fake out a set of people
        {
            var people = new[]{ new Person(), ... };
            return people.AsQueryable();
        }
    }

Класс Person должен быть достаточно простым:

public class Person
    {
        [Key]
        public Guid Id { get; set;  }
        public Person Parent { get; set;  }
        public String Name { get; set; }
        public Person[] Children { get; set; }
    }

В клиенте Silverlight сгенерированный класс Person не включает свойства Parent или Children. Чего мне не хватает?

(Возможно, я должен указать, что, хотя это, очевидно, фиктивный пример, я планирую использовать слабосвязанный подход, который имитирует. На самом деле большинство моих данных вообще не хранятся в базе данных. Значительное большинство В примерах RIA используется сквозное соотношение моделей из базы данных и пользовательского интерфейса, что в моем случае не вариант.)

1 Ответ

1 голос
/ 15 ноября 2011

Попробуйте добавить атрибут [Include] в свойства Parent & Children.

public class Person
{
    [Key]
    public Guid Id { get; set;  }
    [Include]
    public Person Parent { get; set;  }
    public String Name { get; set; }
    [Include]
    public Person[] Children { get; set; }
}

Если класс Person выходит из БД (в приложении реального мира) и вы используете EF, тогдаВы должны принудительно загружать их, используя метод .Include().

...