Я сейчас сражаюсь с добавлением элементов через C# в базу данных Sitecore.Как программно заполнять элементы Sitecore (Добавить элемент и поля)?
Код ниже выполняется правильно, однако элементы не создаются.
Кроме того, я заметил, что элемент ["FieldName"] = значение; синтаксис фактически не заполняет коллекцию 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"]. Значение = значение; он не увеличивает счет коллекции newItem.Fields.
Конечно, поле «поле» соответствует тем, которые присутствуют в newItem.Template.Fields [x] .Name.
2) Да, это помогло предварительно заполнить коллекцию Fields, я дам вам знать, как я лажу. –
3) Я не видел их в редакторе содержимого Sitecore при использовании базы данных Master. –
4) Да ......... –