我正在尝试设置POCO RIA Silverlight项目。当域服务返回时,数据是缺少数据。
下面我已经包含了父/子课程和我的域名服务。它应返回5个父对象的列表,每个父对象包含3个子对象。我相信我已经设置域服务以正确返回我想要的对象树。
域服务返回5个父对象。第一个父对象正确包含3个子对象。
但是,所有后续父对象都不包含子对象。我做错了。
我找到了一些资源可以提供帮助,而且我似乎遵循他们规定的方法而没有结果。
如果有人能够指出我做错了什么,我会非常感激。
public class Parent
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
private List<Child> _children = new List<Child>();
[Include]
[Association("ParentChildRelation", "Id", "ParentId")]
[Composition]
public List<Child> Children
{
get { return _children; }
}
}
public class Child
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
private int _parentId;
public int ParentId { get { return _parentId; } }
private Parent _parent;
[Association("ParentChildRelation", "ParentId", "Id", IsForeignKey = true)]
public Parent Parent { get { return _parent; } set { _parent = value; _parentId = value.Id; } }
}
[EnableClientAccess()]
public class PocoDomainService : DomainService
{
public List<Parent> GetParents()
{
var list = new List<Parent>();
list.AddRange(from p in Enumerable.Range(1, 5)
select (new Parent()
{
Name = "Parent " + p.ToString(),
Id = p
}));
foreach (var p in list)
{
p.Children.AddRange(from c in Enumerable.Range(1, 3)
select (new Child()
{
Id = c,
Name = "Child " + c.ToString() + " From " + p.Name,
Parent = p
}));
}
return list;
}
}
答案 0 :(得分:1)
问题出在我如何在域服务中创建集合。
我为每个父母的孩子使用相同的Child ID {1,2,3},每个孩子id都需要在所有孩子中独一无二。就像在数据库中一样。傻我。
答案 1 :(得分:0)
只是初步评论而不是更深入 - 你已经将两个不同的关联命名为相同。您可能需要使这些名称唯一。