我有一个特殊问题......
Szenario:我有一个Contentype,它有两个Entity-Fields。其中一个Entityfields填充,一个是空的。我得到了数据(As DynamicEntity,名为result1)。对于空实体字段,我在Method中获得了一个默认值(名为result2的DynamicEntity)。现在我想在result1中为empty属性添加result2。 add-method抛出没有错误,但属性保持为null ...
实施例: contenttype名为Header。
字段:标题(字符串),字体(实体字段),颜色(实体字段)
数据:“标题”,从Contenttype字体中选择一项,未选择任何内容。
我将数据提取到result1中。 result1来自ToSic.SexyContent.DynamicEntity类型
result1.Font是类型System.Collections.GenericList`1 [ToSic.SexyContent.DynamicEntity],我可以访问result1.Font [0] .Name并获得值
result1.Color类型为System.Collections.GenericList`1 [ToSic.SexyContent.DynamicEntity],值为null(result1.Color.Count给我0)
result2来自ToSic.SexyContent.DynamicEntity类型
现在我想用result1.Color.Add(result2)添加result2;结果1。没有错误但没有任何反应。当我尝试访问result1.Color [0] .name时出现错误System.ArgumentOutOfRangeException ...
任何提示?
答案 0 :(得分:0)
据我所知,你有两个实体列表,想要合并它们,然后再输出它们。
如果我也理解正确,其中一个列表是现有实体的属性 - 类似Team.Members - 你试图将其他实体 - 比如Team.Leaders - 添加到Team.Members集合中,正确的吗?
在这种情况下,您的错误是尝试修改实体属性并对其进行增强,因为实体及其数据是只读的。
您所要做的就是创建这些实体的新列表/集合,并循环使用它。您可以像List<DynamicEntity> xyz = new List<DynamicEntity>();
一样手动执行此操作并添加内容,也可以使用LINQ来执行相同的操作。