2016-12-12 5 views
0

У меня есть особая проблема ...Невозможно добавить DynamicEntity в Родовой список

Szenario: У меня есть Contentype, который имеет два Entity-поля. Одно из Entityfields заполнено, одно пусто. Я получил данные (как DynamicEntity с именем result1). Для пустого поля entity я получил значение по умолчанию в методе (как DynamicEntity с именем result2). Теперь я хочу добавить result2 в result1 для свойства empty. Метод добавления не выдает ошибки, но свойство остается нулевым.

Пример: Тип контента имеет название Header.

Поля: Титель (строка), шрифт (entityfield), Color (entityfield)

данных: "Title", выбран один элемент из 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] и нулевое значение (result1.Color.Count дать мне 0)

result2 от типа ToSic.SexyContent.DynamicEntity

Теперь я хочу добавить result2 с result1.Color.Add (result2); к результату1. Ошибок нет, но ничего не происходит. Когда я пытаюсь получить доступ к result1.Color [0] .name, я получил ошибку System.ArgumentOutOfRangeException ...

Любые подсказки?

+0

Это кажется смущенным. Пожалуйста, предоставьте более подробную информацию, где вы пытаетесь это сделать. Это в шаблоне бритвы, в веб-api? Вы пытаетесь объединить списки для вывода или пытаетесь изменить данные в db? – iJungleBoy

+0

Он находится в шаблоне бритвы, и я пытаюсь объединить списки для вывода. Только нормальный материал ... ;-) –

ответ

0

Из того, что я понимаю, у вас есть два списка сущностей, и вы хотите объединить их, а затем вывести их позже.

Если я тоже правильно вас понимаю, один из списков является свойством существующего объекта - что-то вроде Team.Members - и вы пытались добавить другие объекты - скажем, Team.Leaders - в коллекцию Team.Members , верный?

В этом случае ваша ошибка заключается в попытке изменить сущность-свойство и его усиление, поскольку объекты и их данные доступны только для чтения.

Все, что вам нужно сделать, это создать новый список/коллекцию этих объектов и пройти через это. Вы можете сделать это вручную, как List<DynamicEntity> xyz = new List<DynamicEntity>();, и добавить вещи, или вы можете играть с LINQ, чтобы сделать то же самое.

+0

ой, я не видел readonly ... я решил свою проблему с ExpandoObject, получая значения от DynamicEntity. Спасибо! –

+0

отлично - тогда лучшая оценка как ответ :) – iJungleBoy

 Смежные вопросы

  • Нет связанных вопросов^_^