Как программно заполнить элементы Sitecore (добавить элемент и поля)?

Сейчас я борюсь с добавлением элементов через C # в базу данных Sitecore.

Приведенный ниже код выполняется правильно, однако элементы не создаются.

Также я заметил, что элемент ["FieldName"] = значение; синтаксис фактически не заполняет коллекцию Fields.

И коллекция Fields для элемента кажется только для чтения, поэтому я не могу просто вызвать .Add для нее (такого метода не существует).

Итак, как правильно создать дочерний элемент и заполнить его поля?

Я использую базу данных Master как для бэкэнда Sitecore, так и для этого кода.

Код, который я использую ниже:

   using (new Sitecore.SecurityModel.SecurityDisabler())
   {

        Database db = Factory.GetDatabase(this.Database);

        foreach (var vacancy in Articles.Tables[0].Rows)
        {
            var rootItem = db.GetItem(this.RootItem);
            DataRow dr = (DataRow) vacancy;

            var newItem = rootItem.Add(string.Format("{0} {1}", dr["numericID"], dr["job_name"]),
                                       db.GetTemplate(new ID("{GUID}")));

            newItem.Editing.BeginEdit();
            newItem["Job Title"] = dr["job_name"].ToString();//
            newItem.Editing.EndEdit();
        } 
}

Подробнее: newItem.Template.Fields возвращает коллекцию со 100 полями

newItem.Fields возвращает FieldCollection, содержащее всего 9 элементов.

Когда я прохожу через код newItem ["поле"]. Value = value; он не увеличивает счетчик коллекции newItem.Fields.

Конечно, ключ "field" согласуется с ключами, присутствующими в newItem.Template.Fields [x] .Name.

5
задан Marcin Brzezinski 2 February 2012 в 17:27
поделиться