Возврат ассоциированных членов с помощью Ria DomainService Invoke Method - PullRequest
3 голосов
/ 05 сентября 2010

Я получил этот метод DomainService, который я вызываю из моей SL ViewModel с помощью атрибута Invoke:

[Invoke]
public ServiceModel.Recipy GetRecipyById(int recipyId)
{
    return new Recipy
                {
                    RecipyId = 1,
                    Name = "test",
                    Description = "desc",
                    Author = new Author
                                {
                                    AuthorId = 1,
                                    Name = "Johan"
                                }
                };
}

Код в моей ViewModel выглядит следующим образом:

public RecipyViewModel()
{
    context.GetRecipyById(1, RecipyLoadedCallback, null);
}

private void RecipyLoadedCallback(InvokeOperation<Recipy> obj)
{
    _name = obj.Value.Name;
    _description = obj.Value.Description;
    _authorName = obj.Value.Author.Name;
}

Recipyи классы POCO / ServiceModel Author:

public class Recipy
{
    [Key]
    public int RecipyId { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }

    [Association("Author", "RecipyId", "AuthorId")]
    [Include]
    public Author Author { get; set; }
}

public class Author
{
    [Key]
    public int AuthorId { get; set; }
    public string Name { get; set; }
}

Теперь код работает нормально, за исключением того, что связанный Author не передается клиенту / viewmodel, свойство Author Recipy имеет значение null.Я подумал, что использование атрибутов [Associate] и [Include] поможет?

Спасибо за любую помощь, я изо всех сил стараюсь использовать материал DomainService / RIA, и я близок к тому, чтобы сдаться ииди "нормальный" WCF / REST вместо:)

1 Ответ

2 голосов
/ 24 сентября 2010

Насколько я понимаю, [Invoke] на данный момент не поддерживает сложные иерархии, поэтому я решил это, убедившись, что у меня есть правильные атрибуты для [Include] и [Association] в коллекции, и вернулся к использованиювместо этого обычный метод запроса RIA.

...