Я создал сложный объект, который сам включает список другого объекта.
Пример:
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.
Моей первой попыткой было создание метода get с возвращаемым типом MyClass1 (для предоставления MyClass1), а также создание метода Insert для MyClass1 и MyClass2. Это работает, но метод MyClass2 Insert бесполезен! Я вставляю всю информацию в метод 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, не имея таких бесполезных методов и грязной реализации? Мне нужно сделать все мои работы только в одном методе. Мне не нужно отслеживать и т. Д. Здесь. Лучше использовать традиционные сервисы WCF помимо RIA или есть другой способ в отношении RIA?
Заранее спасибо