我们最近从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“
这种配置以前工作过,似乎适用于其他可以为空的类型,例如诠释?
模板字段中的基础存储是“单行文本”。
有没有人有任何想法?
此致
标记