Если вы создаете DomainService, предоставляя объект, можете ли вы получить доступ к совокупным объектам? - PullRequest
3 голосов
/ 09 декабря 2010

Скажем, вы создали RIA DomainService и включили в него сущность Person (показано ниже), можете ли вы получить доступ к агрегатным сущностям этого объекта?

Например, если у меня есть такие сущности (сохранитьимейте в виду, что это наивное представление, они моделируются с помощью дизайнера EF4):

public class Person
{
    string FirstName { get; set; }
    PhoneNumber { get; set; }
}

public class PhoneNumber
{
    public string AreaCode { get; set; }
    public string Trunk { get; set; }
    public string Number { get; set; }
}

Если я включу Person при создании PeopleDomainService, сможет ли клиент получить доступ к PhoneNumber на нем (иизменить его)?

Ответы [ 2 ]

2 голосов
/ 09 декабря 2010

Вы можете украсить атрибут PhoneNumber объекта Person с помощью атрибута [Include].Не забудьте также включить оператор include в запрос LINQ при получении объекта Person.

1 голос
/ 09 декабря 2010

Да, вы можете вносить связанные сущности.

В файле PeopleDomainService.metadata.cs найдите класс PersonMetadata.В свойстве PhoneNumbers добавьте атрибут «Включить»:

[Include]:
public EntityCollection<PhoneNumber> PhoneNumbers { get; set; }

В PeopleDomainService.cs найдите функцию GetPersons и измените ее, добавив в нее PhoneNumbers:

public IQueryable<Person> GetPersons()
{
    return this.ObjectContext.Persons.Include("PhoneNumbers");
}

YouВы можете найти более подробную информацию о MSDN> Пошаговое руководство. Обзор услуг RIA > Отображение связанных данных

...