gpt4 book ai didi

orm - Sitecore Glass 映射器 GetItem(guid) 始终返回 null

转载 作者:行者123 更新时间:2023-12-04 19:47:58 26 4
gpt4 key购买 nike

我看到一个相关的问题: Sitecore Glass Mapper always null

但不幸的是,它没有为我的案例提供解决方案。

下面是一段代码:

var db = Factory.GetDatabase("master");
var context = new SitecoreContext();
// the ID of Needed item
var g = new Guid("{F21C04FE-8826-41AB-9F3C-F7BDF5B35C76}");
// just to test if it's possible to fetch item using db.GetItem
var i = db.GetItem(new ID(g), Language.Current, Sitecore.Data.Version.Latest);
// Grab item
var t = context.GetItem<Article>(g);

在上面的代码中: 我不为空 t 为空

文章是像这样的简单类:

[SitecoreType(TemplateId = "{4C4EC1DA-EB77-4001-A7F9-E4C2F61A9BE9}")]
public class Article
{
[SitecoreField(FieldName = "Title")]
public string Title { get; set; }
}

Sitecore 中只安装了一种语言 - en,它也已在 items 的 web.config 中指定。

我还添加了 GlassMapperSc.Start();Application_StartGlobal.asax.cs并通过 var attributes = new AttributeConfigurationLoader(new[] { "Assembly.Name" }); 将我的程序集添加到包含的程序集列表中我成功地在 SitecoreContext 中找到了我的类(class)映射。

它看起来不像是语言问题,如一开始提供的链接中所述。我已经为此苦苦挣扎了很长时间,但没有运气......

谢谢!

最佳答案

我刚刚注意到您正在为 Sitecore 数据库使用 master 数据库,为 Glass 使用 SitecoreContext

SitecoreContext 类将在运行时使用由 Sitecore.Context.Database 属性定义的数据库。这可能意味着它正在使用网络数据库。

您能否检查您是否已将项目发布到网络数据库或改为使用:

var context = new SitecoreService("master");

关于orm - Sitecore Glass 映射器 GetItem<TypeName>(guid) 始终返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24521113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com