我試圖用RIA域服務工作,因爲如果它是一個WCF服務(這在技術上是)如何在RIA服務代理客戶協會工作的Silverlight
似乎是關鍵因素「失蹤」外從生成的代理客戶端。例如關聯的對象屬性。
爲了簡單起見這裏的兩個班的一個示例:
public class Person
{
[Key]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
[Include]
[Association("Person_Hobbies", "Id", "Person_Id")]
[Composition]
public IEnumerable<Hobby> Hobbies { get; set; }
}
public class Hobby
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int Person_Id { get; set; }
}
,並在此域名服務,我們可以回到人民和他們的興趣愛好爲:
public IQueryable<Person> GetPeople()
{
var peopleList = new[] {
new Person { Id = 1, FirstName = "Fred", LastName = "Flintstone", Hobbies = new List<Hobby>() { new Hobby { Id = 1, Name="Reading", Person_Id=1 },
new Hobby { Id = 2, Name="Biking", Person_Id=1}, }},
new Person { Id = 2, FirstName = "Barnie", LastName = "Rubble", Hobbies = new List<Hobby>() { new Hobby { Id = 3, Name="Skiing", Person_Id=2 },
new Hobby { Id = 4, Name="Rock Climbing", Person_Id=2} } },
};
return peopleList.AsQueryable<Person>();
}
我已經驗證了這個工程完全按照預期,在Silverlight和DomainService之間。
但是在控制檯應用程序中也引用了這個RIA域服務,生成的Person類沒有Hobbies屬性(就像它在Silverlight客戶端中一樣)。
確實,當我打電話給GetPeople時,我得到了RootResults(人)和IncludedResults(興趣),我可以將它們「結合」在一起。所以我可以生活沒有愛好屬性
困難在於準備ChangeSetEntry數組---我如何發送服務人和他們的業餘愛好從控制檯應用程序?在Silverlight中,我創建了一個新的Person,爲Hobbies屬性添加愛好,並將Person添加到DomainContext和SubmitChanges。在後臺RIA服務器(無論是在客戶端還是服務器上,我都不確定)將其排序。
我正在努力改變ChangeSetEntry對象數組中個人對業餘愛好的聯繫。