Orm Sitecore玻璃贴图器GetItem<;TypeName>;(guid)始终返回null

Orm Sitecore玻璃贴图器GetItem<;TypeName>;(guid)始终返回null,orm,sitecore,code-generation,glass-mapper,tds,Orm,Sitecore,Code Generation,Glass Mapper,Tds,我看到了一个相关的问题: 但不幸的是,它没有为我的情况提供解决方案 下面是一段代码片段: var db=Factory.GetDatabase(“master”); var context=new SitecoreContext(); //所需项目的ID var g=新Guid({F21C04FE-8826-41AB-9F3C-F7BDF5B35C76}); //只是为了测试是否可以使用db.GetItem获取项 var i=db.GetItem(新ID(g),Language.Current

我看到了一个相关的问题:

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

下面是一段代码片段:

var db=Factory.GetDatabase(“master”);
var context=new SitecoreContext();
//所需项目的ID
var g=新Guid({F21C04FE-8826-41AB-9F3C-F7BDF5B35C76});
//只是为了测试是否可以使用db.GetItem获取项
var i=db.GetItem(新ID(g),Language.Current,Sitecore.Data.Version.Latest);
//抓取物品
var t=context.GetItem(g);
在上述代码中: 我不是空的 t为空

Article是一个简单的类,如:

[SitecoreType(TemplateId=“{4C4EC1DA-EB77-4001-A7F9-E4C2F61A9BE9}”)]
公共类文章
{
[SitecoreField(FieldName=“Title”)]
公共字符串标题{get;set;}
}
Sitecore-en中只安装了一种语言,它也已在web.config中的项目中指定

我还添加了
GlassMapperSc.Start()
Global.asax.cs
中的
Application\u Start
,并通过
var attributes=new AttributeConfigurationLoader(new[]{“assembly.Name”})将我的程序集添加到包含的程序集列表中SitecoreContext
映射中找到了我的类

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


谢谢大家!

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

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

您是否可以检查是否已将项目发布到web数据库,或者改为使用:

var context=newsitecoreservice(“主”);

只是为了确定,您是否检查了您的项目
{F21C04FE-8826-41AB-9F3C-F7BDF5B35C76}
是否具有有效版本?使用标准Sitecore API获取项目,并检查其是否使用您期望的语言,以及是否具有版本。我看到过一些问题,SC使用的语言与您认为应该使用的语言不同。@michael edwards我检查过,它有语言“en”和版本“1”。您是否尝试直接使用“I.GlassCast(true,true)”来强制转换(I)?“标题”也需要是虚拟的。@ahmed okour谢谢!i、 GlassCast(true,true)和在标题中添加虚拟元素对我有帮助,但是由于某些原因,GetItem(g)仍然返回null。非常感谢!这就是答案!