sitecore开发入门Sitecore的CRUD操作 - 第一部分
在本文中,讨论如何使用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,所以这个博客系列将是您创建项目相关参考的内容之一。
sitecore开发入门Sitecore的CRUD操作 - 第一部分的更多相关文章
- sitecore开发入门Sitecore的CRUD操作 - 第二部分
在上一篇(sitecore开发入门Sitecore的CRUD操作 - 第一部分)中我们讨论了如何使用Sitecore Item API,Glass,Fortis和Synthesis在Sitecore中 ...
- sitecore开发入门之Sitecore字典结构最佳实践
使用Sitecore时,一个重要的主题是如何为您的网站处理不同的语言和区域.Sitecore对此的回答是使用字典项,它基本上只代表键/值定义.但是,这个字典项可以设置为具有不同的语言版本,这几乎允许您 ...
- elasticsearch入门(简单的crud操作)
记录一下,elasticsearch从创建索引到插入数据的一个crud操作. 一.创建索引 curl -XPUT "http://192.168.99.1:9200/productindex ...
- sitecore开发入门之如何在代码中获取SITECORE图像URL
using Sitecore; using Sitecore.Data.Items; using Sitecore.Resources.Media; public string GetUrl() { ...
- sitecore开发入门教程如何获取Sitecore项目的域名
我假设您在<sites>web.config文件的部分中设置了多个站点,并且每个站点都hostName定义了一个属性,例如 <site name="website1&quo ...
- C#/.Net开发入门篇(2)——第一个控制台应用程序
相信看了上一篇文章的小伙伴已经安装好自己的开发工具了VS了,这一篇文章就教大家怎么创建第一个应用程序. 下面大家跟着我的操作一起来创建自己的第一个应用程序吧 一.打开VS工具点击左上角的文件→新建→项 ...
- Python开发入门14天集训营-第一章
python第一章 python变量 变量的作用 存数据 被程序调用和操作 标记数据 声明变量 name = "Ydh" 变量名 = 变量值 变量定义规范: 变量名只能是 字母.数 ...
- 8天掌握EF的Code First开发系列之2 简单的CRUD操作
本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 本人的实验环境 ...
- SpringData JPA快速入门和基本的CRUD操作以及Specifications条件查询
SpringData JPA概述: SpringData JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作 ...
随机推荐
- Ubuntu下Ansible安装和使用
Ansible是一个批量部署的工具 参考:Ansible中文权威指南 1.安装 sudo apt-get install software-properties-common sudo apt-add ...
- Excel导入工具类兼容xls和xlsx
package com.bj58.finance.platform.operation.provider.util; import org.apache.log4j.Logger; import or ...
- JS 浅谈函数柯里化,不明觉厉
在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术.这个技术由 Christopher ...
- Java并发面试题
一.什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成一 ...
- linux下tar命令的常用实例
语法:tar [主选项+辅选项] 文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用. 主选项:c 创建新的档案文件.如果用户想备份一个目录或是一些 ...
- 【CF446D】DZY Loves Games 高斯消元+矩阵乘法
[CF446D]DZY Loves Games 题意:一张n个点m条边的无向图,其中某些点是黑点,1号点一定不是黑点,n号点一定是黑点.问从1开始走,每次随机选择一个相邻的点走过去,经过恰好k个黑点到 ...
- linux 的基本操作(linux系统的日常管理)
系统的日常管理 笔者在前面介绍的内容都为linux系统基础类的,如果你现在把前面的内容全部很好的掌握了,那最好了.不过笔者要说的是,即使你完全掌握了,你现在还是不能作为一名合格的linux系统管理员的 ...
- 使用call、apply和bind解决js中烦人的this,事件绑定时的this和传参问题
1.什么是this 在JavaScript中this可以是全局对象.当前对象或者任意对象,这完全取决于函数的调用方式,this 绑定的对象即函数执行的上下文环境(context). 为了帮助理解,让我 ...
- 21、bootstrap框架
http://www.bootcss.com/ Bootstrap 插件==全部依赖 jQuery== 请注意,Bootstrap 的所有 JavaScript 插件都依赖 jQuery,因此 jQu ...
- 微信小程序时间戳的转换及调用
13位 的时间戳,如下图: 效果图: 1.(utils.js里面的代码): function formatTime(timestamp, format) { const formateArr = [' ...