GlassMapper SC可以为空的布尔字段导致失败的项目解析

时间:2015-11-25 15:19:26

标签: sitecore sitecore6 glass-mapper

我们最近从Glass.Sitecore.Mapper 2.0.12.0升级到Glass.Mapper.Sc 3.3.1.53(我们无法升级任何更高版本,因为我们使用Sitecore 6)。

我们在使用可以为空的布尔字段保存项目时遇到问题 即。

[SitecoreType(TemplateId = Templates.Category)]
public class Category : AggregateBase
{
    ...

    [SitecoreField(FieldName = CategoryFields.Requires360)]
    public virtual bool? Requires360 { get; set; }

    [SitecoreField(FieldName = CategoryFields.RequiresCatwalk)]
    public virtual bool? RequiresCatwalk { get; set; }
}

其中AggregateBase包含标准sitecore字段 e.g。

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

    [SitecoreInfo(SitecoreInfoType.Name)]
    public virtual string Name { get; set; }

   ...
}

如果可以为空的bool字段为空,则可以毫无问题地保存。

如果可空字段具有值,则会出现以下异常

  

“项目解决失败 - 您无法保存不包含的项目   表示项目ID的属性。确保至少有一个   属性已标记为包含Sitecore ID。类型:   System.Boolean“

这种配置以前工作过,似乎适用于其他可以为空的类型,例如诠释?

模板字段中的基础存储是“单行文本”。

有没有人有任何想法?

此致

标记

0 个答案:

没有答案