这是我的简化域名模型:
public abstract class AbstractClass
{
public string Name {get;set;}
public abstract IEnumerable<AbstractClass> Children { get; }
}
public abstract class Project : AbstractClass
{
List<Document> Documents {get;set;}
public override IEnumerable<AbstractClass> Children
{
get { return this.Documents; }
}
}
public abstract class Document : AbstractClass
{
//misc
}
我最近在Project类中添加了上面的抽象“Children”属性和关联的覆盖。这样做是因为我需要引用“Children”以用于用户界面(继承自AbstractClass的其他类也将具有Children导航属性)。
问题在于,现在,当我检索项目/文档的图形时,重复的文档显示在对象图中。我认为我需要某种克隆方法,但速度很重要,我只是想引用现有的文档导航属性而不是克隆对象。
我认为这有一个简单的解决方案,但它逃脱了我。
感谢。
编辑:
为清楚起见,我正在通过Web Api从SQL数据库中检索数据,并且在Web Api将结果消息发送回客户端后会出现问题。所以看起来儿童财产可能会在反序列化阶段引起问题。
答案 0 :(得分:0)
对于那些可能来到这个页面的人,我通过使用抽象方法与AbstractClass中的属性解决了这个问题,即
public abstract IEnumerable<AbstractClass> GetKeyChildren();
我仍然不清楚为何发生重复。