Как поместить сущности и набор сущностей в DTO в Silverlight - WCF RIA? - PullRequest
1 голос
/ 29 октября 2011

Я хотел бы сделать DTO, который содержит сущности. Как мне это сделать? Возможно ли это?

Например, у меня есть что-то подобное в моем проекте сервера:

public class MyCustomDTO
{   
    [Key]
    public int id { get; set; }

    public EntityCollection<MyEntity> list { get; set; }

    public MyEntity2 dummyproperty { get; set; }

    public string name{ get; set; }
}

Но на стороне клиента генерируются только базовые типы, а свойство collection и типизированное свойство MyEntity2 - нет.

Моя цель - инкапсулировать несколько разных сущностей в один DTO, а не собирать их с помощью нескольких асинхронных запросов ...

Или какие разные решения могут подойти для этого сценария? Я что-то упускаю (некоторые атрибуты) или просто не поддерживается?

Ответы [ 2 ]

0 голосов
/ 21 февраля 2012

Вам необходимо представить другие объекты в качестве методов обслуживания в дополнение к вашему DTO, чтобы службы RIA могли отслеживать их на стороне клиента.Ваша служба должна выглядеть следующим образом:

public class MyDomainService : LinqToEntitiesDomainService<MyContext>
{
    public IQueryable<MyCustomDto> GetMyCustomDtos()
    {
        //...
    }

    public IQueryable<MyEntity> GetMyEntitys()
    {
        //...
    }

    public IQueryable<MyEntity2> GetMyEntity2s()
    {
        //...
    }
}

Вам также необходимо добавить атрибут [Включить] для ваших сущностей, чтобы они извлекались на стороне клиента.

0 голосов
/ 29 октября 2011

Можно отправить сложный тип между клиентом Silverlight и службой RIA WCF, но ваш DTO не должен иметь атрибут [Key], применимый к свойству.

public class MyCustomDTO
{   
    //[Key] // comment this line and there you go.
    public int id { get; set; }

    public List<MyEntity> list { get; set; }

    public MyEntity2 dummyproperty { get; set; }

    public string name{ get; set; }
}

Обновление

Вам необходимо установить WCF RIA Services V1.0 SP1 для Silverlight 4 , прежде чем вы сможете использовать сложный тип в своем приложении. WCF RIA Services V1.0 SP1 - хорошая статья об изменениях в этом пакете обновления.

...