我在发送复杂结构时遇到了麻烦。 我有两节课。我通过ria服务发送一个消息列表,每条消息都包含一个描述参与对话的人的类列表 - MailInfo
public class Message
{
[Key]
public string Id { get; set;}
public string ParentId { get; set; }
public List<MailInfo> Email { get; set; }
}
public class MailInfo
{
[Key]
public string Address { get; set; }
}
发送消息列表我使用
[Query]
public IQueryable<Message> GetMessage() {return null;}
[Query]
public IQueryable<MailInfo> GetMailInfo() { return null; }
并最终
[Invoke]
public List<Message> SomeMethod ()
{ return listofMessages; }
但我无法访问Message的Email字段。我可以做点什么吗?或者Silverlight不支持这种复杂的结构吗?
答案 0 :(得分:2)
实际上我发现你不能正确发送这样的类对象。关键是RIA服务禁用了要发送的类的非POCO对象的setter。 您可以在生成的代码.Web.g.cs中看到它。 我发现的唯一美妙的解决方案是将List EMail作为序列化字符串发送。所以在那之后,实体中的所有字段都是POCO,你终于得到了对象。
答案 1 :(得分:1)
public class Message
{
[Key]
public string Id { get; set;}
public string ParentId { get; set; }
[Include]
public List<MailInfo> Email { get; set; }
}
public class MailInfo
{
[Key]
public string Address { get; set; }
}
尝试使用该属性。如果它在您的数据库中链接,它应该为您提供这些。