我創建了一個複雜的對象,它本身包含另一個對象的列表。發送自定義複雜對象到Silverlight RIA服務
例子:
public class MyClass1
{
private List<MyClass2> myClass2List
[Key]
public long Id { get; set; }
public string Name { get; set; }
[Include]
[Association("FK_MyClass1_MyClass2", "Id", "MyClass1Id")]
public List<MyClass2> MyClass2List
{
get
{
if (this.myClass2List == null)
{
this.myClass2List = new List<MyClass2>();
}
return this.myClass2List;
}
set { this.myClass2List = value; }
}
}
public class MyClass2
{
[Key]
public long Id { get; set; }
public string Value { get; set; }
public long MyClass1Id { get; set; }
}
現在我想給MyClass1的(其中其MyClass2List已滿)的實例向RIA服務。
我的第一次嘗試是創建一個MyClass1返回類型的get方法(以公開MyClass1),併爲MyClass1和MyClass2創建一個Insert方法。它的作品,但MyClass2插入方法是沒用的!我在MyClass1方法中插入所有信息。 get方法也沒用!
這是工程領域的服務:
[EnableClientAccess]
public class MyDomainService : DomainService
{
public MyClass1 GetMyClass1()
{
return null;
}
[Insert]
public void Insert(MyClass1 myClass1)
{
... (Main code)
}
[Insert]
public void Insert(MyClass2 myClass2)
{
// I leave this method empty because I do the job in MyClass1 Insert method.
// If I don't add this method the Add operation on MyClass2List will not work!
}
}
正如你看到它並沒有一個明確的執行。儘管我可以使用傳統的啓用WCF Silverlight的服務,並且只需使用一種方法插入MyClass1實例。
請注意,我嘗試了[Invoke]方法(一個簡單的調用方法,它將MyClass1作爲輸入參數),但是「MyClass1.MyClass2List」爲空!
如何將一個複雜的對象發送到RIA服務而沒有這種無用的方法和髒實現?我需要用一種方法來完成我所有的作品。我不需要在這裏跟蹤等。使用RIA之外的傳統WCF服務更好嗎?還是有另一種關於RIA的方式?
在此先感謝
關於「創造與MyClass1的返回類型的查詢方法」,任何RIA查詢假設一個IEnumerable或IQueryable的返回類型。它不支持返回單個對象的概念。 –
但它的工作方式與我使用的方式完全相同! –
對不起,你的回覆沒有意義。你說過「get方法也沒用!」以及聲明您試圖從查詢中返回單個值。我正在評論爲什麼這不起作用。 –