Сейчас я борюсь с добавлением элементов через C # в базу данных Sitecore.
Код ниже выполняется правильно, однако элементы не создаются.
Также я заметил, что item ["FieldName"] = value; синтаксис фактически не заполняет коллекцию Fields.
И коллекция Fields для элемента кажется доступной только для чтения, поэтому я не могу просто вызвать .Добавить к нему (такого метода не существует).
Итак, как правильно создать дочерний элемент и заполнить его поля?
Я использую базу данных 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 ["field"]. Value = value; он не увеличивает счетчик коллекции newItem.Fields.
Конечно, ключ "field" соответствует ключам, присутствующим в newItem.Template.Fields [x] .Name.