Logging/Debugging Glass Mapper SC 4.0.2.10 中的映射错误

Logging/Debugging Mapping Errors in Glass Mapper SC 4.0.2.10

有谁知道强制 Glass Mapper SC 抛出映射错误异常的方法吗?它似乎吞下了它们,我只剩下空属性,而且没有简单的方法来诊断问题。这些教程并没有真正深入到属性配置中,所以我不得不做很多 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 属性 将始终为空,除非我准确命名它 (ID)。我认为 [SitecoreField("ID"), SitecoreId] 装饰器应该为 Glass 提供提示。这是映射数据的示例。没有抛出异常:

我知道这是旧线程,可能已经解决了,但由于我再次设法解决了这个问题(上次忘记更新了 :D)所以这次想到了记录。

我正在升级到 Glass Mapper 的 v5。我遵循默认的基于属性的配置。它被记录在案 here,但最重要的是我添加了

1) 类

上的模板
[SitecoreType(AutoMap = true, TemplateId = "<Branch Id>"]

2) Id 字段应在您的代码中声明如下。

[SitecoreId]
public virtual Guid Id { get; set; }

3) Sitecore 服务更改,如文章中所述,使用 Sitecore 服务 (MVC / WebForm),在所有地方将延迟加载作为 false 传递,将推断类型作为 true 传递。这是非常重要的一步。

希望这对我下次访问这个问题有所帮助。 :D