我是Sitecore的新手,对此有一个基本的问题。创建Sitecore项目时,会为此项目创建唯一ID。如果我在代码中使用此项ID来保存对它的引用,这样可以吗?这是否会从部署更改为部署?
答案 0 :(得分:2)
如果您实际“部署”了您的项目 - 使用包或序列化(工具) - ,ID将保持不变,您可以在代码中保留对它的引用。
这是一个很好的编码实践,但是不要在你的代码周围传播硬编码的guid(就像ID实际上是包装的那样)。因此要么将它们捆绑在一段代码中,这些代码可以轻松地部署而没有副作用,或者将它们放在配置文件中(但是再次捆绑它们并且不要与其他东西混合)。
如果出于某种原因某件物品将在某一天消失并且您需要重新创建它(意思是:ID已更改)或者您只是需要它指向一个新项目,您将会感激您确实保留了该项目它在某处分开;)
答案 1 :(得分:1)
这是使Sitecore ID像GUID一样的Sitecore行为。这是一个非常好的方法。项目的ID也可以在您的C#代码中使用
Sitecore中的ID类用于识别Sitecore中所有类型的项目,即内容项,模板,媒体项等。它是.NET自己的System.Guid结构的包装器,并且有一个名为Guid的属性,它返回一个系统.Guid。在内部,Sitecore使用uniqueidentifier类型在其SQL Server数据库中存储ID。
例如,模板也是一个项目,它具有唯一的ID。如果环境之间的ID不同,则需要在环境之间修改代码。
答案 2 :(得分:1)
Sitecore ItemID始终保持唯一。因此,如果将内容从CM服务器发布到CD服务器,则项ID不会更改。您可以使用ItemID,即使您更改了名称,仍然可以参考正确的Sitecore内容项。
建议使用某种类并将项目ID放在那里并从那里引用,以便将来,如果您需要更改,那么您可以在一个地方更改它。
直接使用GUID或任何数字值是一种神奇的值,并且总是容易出错。
答案 3 :(得分:0)
快速回答是,在部署期间ID不会更改,因此您可以在代码中保留引用。
答案 4 :(得分:0)
Sitecore项目ID不会从部署更改为部署,您可以在代码中使用此ID,如: