Invoke 属性を使用して、SL ViewModel から呼び出しているこの DomainService メソッドを取得しました。
[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 および Author POCO/ServiceModel クラス:
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 がクライアント/ビューモデルに転送されず、Recipy の Author プロパティが null であることを除いて、コードは正常に動作します。[Associate] 属性と [Include] 属性を使用するとうまくいくと思いましたか?
助けてくれてありがとう、私は DomainService/RIA のものを理解しようと懸命に努力しています。私はあきらめて、代わりに「通常の」WCF/REST に行きます :)