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应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作 ...
随机推荐
- ArcGIS删除数据异常崩溃
环境 ArcGIS Desktop10.1,ArcSDE10.1,Oracle 11.2.0.4客户端和服务器端(服务器端搭建RAC集群) 问题描述 在使用ArcCatalog连接数据库进行数据删除时 ...
- 安装redis时Newer version of jemalloc required错误解决
问题: [root@localhost redis-4.0.0]# make cd src && make allmake[1]: Entering directory `/root/ ...
- Java高并发系列 — AQS
只懂volatile和CAS是不是可以无视concurrent包了呢,发现一个好链接,继续死磕,第一日: 首先,我承认很多时候要去看源码才能更好搞懂一些事,但如果站在巨人肩膀上呢?有了大概思想源码看还 ...
- python_str 字符串的所有方法
# _Author:huang# date: 2017/11/28 # 字符串 '''print("hello" * 3)print("hello world" ...
- Intellij IDEA 生成返回值对象快捷键
在编写一行JAVA语句时,有返回值的方法已经决定了返回对象的类型和泛型类型,我们只需要给这个对象起个名字就行. 如果使用快捷键生成这个返回值,我们就可以减少不必要的打字和思考,专注于过程的实现. 步骤 ...
- C#实现全窗体范围拖动
using System.Runtime.InteropServices; [DllImport("user32.dll")] public static extern bool ...
- 新版Ubuntu安装日文输入法
在Ubuntu的设置中安装日文输入法 本周在调试书上代码时需要安装日文输入法,我发现在百度上并没有在最新版Ubuntu下安装日文输入法的教程,于是我写了这篇博客来与大家分享一下我的安装过程. a.如图 ...
- Oracle ROWNUM用法和分页查询总结
**************************************************************************************************** ...
- day20:序列化模块,模块的导入
1,什么是序列化--将原本的字典,列表等内容转换成一个字符串的过程就叫做序列化,字符串是有顺序的,序列化转向一个字符串的过程,我们平时说的序列,指的就是字符串. 2,为何要序列化?本来字符串是可以强转 ...
- js的字符串代码库及讲解
1.字符串操作 1.1去除字符串空格 元字符 : \s:空格或者空白等 ^ : 限定开始位置 => 本身不占位置 $ : 限定结束位置 => 本身不占位置 | : 或者 () : 分组代表 ...