是否有人知道强制Glass Mapper SC为映射错误抛出异常的方法?它似乎吞下它们,我留下了null属性,没有简单的方法来诊断问题。这些教程并没有真正深入研究属性配置,所以我不得不做很多TIAS,这会减慢开发速度。
我也会满足于其他用户发现有助于诊断映射问题的任何方法。
示例 这是我正在检索并尝试映射的项目的模板:
以下是我通过查询返回的项目之一:
以下是与模板匹配的模型:
[SitecoreType(AutoMap = true)]
public class UnitDetails
{
//[SitecoreField("ID"), SitecoreId]
public virtual Guid ID { get; set; }
[SitecoreField("Pre-Recycled Percentage")]
public virtual decimal PreConsumerRecycledPercentage { get; set; }
[SitecoreField("Post-Recycled Percentage")]
public virtual decimal PostConsumerRecycledPercentage { get; set; }
public virtual Plant Plant { get; set; }
[SitecoreField("Raw Material")]
public virtual RawMaterial RawMaterial { get; set; }
[SitecoreField("Raw Material Origin")]
public virtual RawMaterialOrigin RawMaterialOrigin { get; set; }
}
即使您暂时忘记了RawMaterial和RawMaterialOrigin属性(那些也没有映射),小数属性也不会映射。此外,ID属性将始终为null,除非我确切地命名(ID)。我认为[SitecoreField(“ID”),SitecoreId]装饰器应该提供给Glass的提示。以下是映射数据的示例。没有例外:
答案 0 :(得分:0)
我知道这是旧线程,可能已经解决了,但是由于设法再次解决此问题(上次忘记更新:D),所以想到了这次录制。
我正在升级到Glass Mapper的v5。我遵循基于属性的默认配置。它已记录在here中,但最重要的是,我添加了
1)类模板
[SitecoreType(AutoMap = true, TemplateId = "<Branch Id>"]
2)ID字段应在代码中声明为以下内容。
[SitecoreId]
public virtual Guid Id { get; set; }
3)如文章所述,使用Sitecore Service(MVC / WebForm)更改Sitecore服务,在所有位置将延迟加载传递为false,并推断类型为true。这是非常重要的一步。
我希望这对我下次访问此问题会有所帮助。 :D