在本文中,讨论如何使用Sitecore.Data.Items.Item并对这些项执行CRUD(创建,读取,更新和删除)操作。我还将介绍如何使用Glass和Fortis类库进行相同的操作,这些操作都是对象关系映射器(ORM)的功劳。

CRUD(创建)

首先,我们将讨论如何创建新项目。下面的示例显示了如何创建项目。在此示例中没有太多错误检查,但您的代码应检查当前模板项是否已设置以及父项是否也为空。否则你的代码会给网站用户带来不友好的错误,这是不理想的。要注意的第二件事是我们正在调用ItemUtil.ProposeValidItemName,这个帮助器方法将接受你传入的字符串,然后吐出一个可以与Sitecore一起使用的Item Name(换句话说,它会删除特殊字符)和更多)。

1
2
3
4
5
6
7
8
9
10

using (new SecurityDisabler())
{
     TemplateItem templateItem = Sitecore.Context.ContentDatabase.GetTemplate(new ID("{7798CD59-76DC-4869-8BDA-2952A64B8687}"));
     Item parentItem = Sitecore.Context.Database.GetItem(new ID("{7798CD59-76DC-4869-8BDA-2952A64B8687}"));
     Item newItem = parentItem.Add(ItemUtil.ProposeValidItemName("Some Name"), templateItem);
     newItem.Editing.BeginEdit();
     newItem.Fields["Whatever"].Value = "";
     newItem.Editing.EndEdit();
}

创建一个新项目是一种相当直接的方法,在Glass Mapper中创建项目也是如此。下面的例子是你如何做到这一点。与上述方法非常相似,但是您不需要指定模板,即在创建项目时由Glass自动完成,因为它可以从您正在使用的POCO模型中确定。此外,如果您正在使用TDS和Glass,或者只使用基本的Glass而不自动生成Glass模型,那么您需要确保模型具有您可以指定的某种项目名称。如果使用TDS自动生成玻璃模型,则需要扩展GlassBase,以包含ItemName的属性。

1
2
3
4
5
6
7
8

var service = new SitecoreService("master");
IPage page = new Page();
page.ItemName = ItemUtil.ProposeValidItemName("Some String");
page.MetaTitle = "Whatever";
service.Create<IPage, IHomepage>(site, page);

最后,如果您还没有使用过Glass,那么幸运的是还有其他选择使用Sitecore。另一个流行的ORM是Fortis,它与Glass有很多相似之处。让我们快速了解一下如何在Fortis中创建新项目:

1
2
3
4
5
6
7

public class MyClass
{
    private void Process(IItemFactory itemFactory)
    {
        IPage item = _itemFactory.Create<IPage>(/* Guid or path */, "Item Name");
    }
}

就这一部分而言,请随意分享您对这些创建新项目的方法的看法。我想我可能会写更多关于如何使用其他ORM或Object Mapper(如Synthesis)创建项目,类似于Glass for Sitecore,所以这个博客系列将是您创建项目相关参考的内容之一。

转载于:https://www.cnblogs.com/BlogNetSpace/p/10413050.html

sitecore开发入门Sitecore的CRUD操作 - 第一部分相关推荐

  1. python程序开发入门_Python开发入门14天集训营-第一章

    python第一章 python变量 变量存储在内存中的值,数据是临时的.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. ...

  2. MapReduce基础开发之八HDFS文件CRUD操作

    HDFS文件操作的基础代码. package com.hive;import java.io.BufferedInputStream; import java.io.BufferedOutputStr ...

  3. java基础的开发入门

    一.JDK的安装 二.java程序的开发入门 配置环境变量 运行第一个程序 命令窗口的几个操作   一.JDK的安装 Oracle公司提供了多个操作系统的JDK,不同的操作系统的JDK在使用上基本相似 ...

  4. 微信公众号开发入门教程第一篇

    微信公众号开发入门教程第一篇 关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/ ...

  5. 第一章 软件开发入门引导及概述

    第一章 软件开发入门引导及概述 前言 计算机系统是由硬件和软件组成,所谓硬件是指组成计算机系统的物理设备,包括电子的.机械的.磁的.光的设备的总和. 我们的电脑.手机.电子设备都算一个小的计算机. 而 ...

  6. 【2023 · CANN训练营第一季】——Ascend C算子开发入门——第一次课

    前言:昇腾AI处理器的算子开发增加了一种新的方式,称之为TIK2,正式名称是Ascend C算子开发.不同于采用Python的DSL和TIK方式,Ascend C使用C/C++作为前端语言的算子开发工 ...

  7. SpringBoot(四) Web开发(2)Restful风格的CRUD操作

    1.创建工程 使用之前使用的Spring提供的向导,快速创建一个包含web模板的SpringBoot工程:springboot-web-restful: 1.1 pom.xml如下 <?xml ...

  8. Android项目驱动式开发教程 第2版,《Android项目驱动式开发教程》第一章开发入门.ppt...

    <Android项目驱动式开发教程>第一章开发入门 1.4 项目框架分析 4 android:versionName="1.0" > 5 8 第9行代码andro ...

  9. Linxu内核模块开发入门(金荣的第一篇个人技术博客)

    前言 第一次使用Markdown语法编辑的第一篇CSDN技术文章,内容为本人第一个内核模块的入门教程,如有不完善的地方,请大家多多批评指正,支持开放.自由.分享,谢谢大家. Linxu内核模块开发入门 ...

最新文章

  1. 【OpenCV 4开发详解】图像极坐标变换
  2. Windows编程一日一练(1)
  3. vmci.sys版本不正确_这样安装 Python 库才是最正确的哦
  4. 华为数据之道 pdf_华为官方出品,华为数据之道新书来了
  5. 洛谷-小书童——密码-简单字符串
  6. python程序题求roc-auc是一种常用的模型评价指标_Keras 利用sklearn的ROC-AUC建立评价函数详解...
  7. npm和package.json那些不为常人所知的小秘密
  8. Echarts数据可视化全解
  9. 常用正则表达式(不断更新ing...)
  10. PNAS A scalable pipeline for designing reconfigurable organisms
  11. 系统架构设计师教程-学习-记录(29)系统开发基础知识-软件开发方法(5)软件系统工具
  12. Kettle构建Hadoop ETL实践(一):ETL与Kettle
  13. java 将map转List对象
  14. (简单控制) 关于使用NI max 的GPIB来控制安捷伦万用表34401A 的操作方法
  15. Linux欧姆单位怎么打,电阻常识-younger0-ChinaUnix博客
  16. 在ubuntu下烧写映像文件到SD卡--基于三星210开发板
  17. 数据库原理 ODBC概述
  18. Java基础之JDK 8下载、安装和环境变量配置
  19. SPSS学习笔记之——OR值与RR值
  20. 软件开发README文档书写模板

热门文章

  1. 验证Tensorflow-gpu下载成功
  2. bsc是指什么_什么是平衡计分卡
  3. ACT_ElectronicTransformer_v1.1 ansys变压器仿真扩展插件
  4. latex徒手写论文之小白篇
  5. EOS 智能合约开发实践(一)EOS钱包的简单使用
  6. 3D视觉学习路线汇总
  7. 西安华为软件开发招聘
  8. html点击电话自动接通,苹果手机如何设置自动接听电话?
  9. java单元测试之mock篇
  10. 文本标注工具BRAT安装使用