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应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作 ...
随机推荐
- 必读:Spark与kafka010整合
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/rlnLo2pNEfx9c/article/details/79648890 SparkStreami ...
- Vue之初识Vue
前言 如果你之前已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手动操作DOM的思维, 因为Vue.js是数据驱动的,你无需手动操作DOM.它通过一些特殊的HTML语法,将DOM和 数据 ...
- SpringCloud(一)浅谈SpringCloud
前言 现在微服务实在是太火了,所以我们必不可少的是要学习一下SpringCloud了,服务化的核心就是将传统的一站式应用 根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享D ...
- 【Excel】读取固定长文本
'******************************************************************************* ' 固定長形式テキストファイルを読み込 ...
- 字符串匹配的 KMP算法
一般字符串匹配过程 KMP算法是字符串匹配算法的一种改进版,一般的字符串匹配算法是:从主串(目标字符串)和模式串(待匹配字符串)的第一个字符开始比较,如果相等则继续匹配下一个字符, 如果不相等则从主串 ...
- 谈一谈 MPU6050 姿态融合(转)
姿态角(Euler角)pitch yaw roll飞行器的姿态角并不是指哪个角度,是三个角度的统称.它们是:俯仰.滚转.偏航.你可以想象是飞机围绕XYZ三个轴分别转动形成的夹角. 地面坐标系(eart ...
- js中 给json对象添加属性和json数组添加元素
js中 给json对象添加新的属性 比如现在有一个json对象为jsonObj,需要给这个对象添加新的属性newParam,同时给newParam赋值为pre.做法如下: var obj={ &quo ...
- hibernate07--关联映射
单向的一对多关联 创建对应的实体类以及映射文件 package cn.bdqn.bean; /** * * @author 小豆腐 *街道对应的实体类 * *单向的多对一关联 */ public cl ...
- PPT文件太大时可以考虑另存为PPTX格式
遇到一个PPT文件有24M,30多页,里面主要有一些图片. 使用自带的图片压缩功能进行压缩,发现没有什么改变,后来找了一些工具软件压缩,最多也只能减少22%. 后来另存为PPTX格式,减小到1.74M ...
- python全栈开发 * 34知识点汇总 * 180719
文件上传下载:一.文件上传(内容较少)服务器:(代码) import socket import json sk=socket.socket() sk.bind(("127.0.0.1&qu ...