Sitecore中的Glass Mapper,TDS代码生成和富文本字段

时间:2014-12-04 20:48:22

标签: sitecore glass-mapper tds

使用Glass.Mapper版本3.0.13.25。 使用TDS 5.0.0.23代码生成(glassv3header.tt和glassv3item.tt)。

我有一个新项目,我想添加到Sitecore。我正在填充通过TDS“代码生成...”

创建的Product对象
Product createdProduct = service.Create(DestinationFolder, newProduct);

当我尝试运行我的代码时,我收到以下错误...

  

当数据不是raw时,无法从富文本字段保存数据。将SitecoreFieldAttribute设置属性设置为SitecoreFieldSettings.RichTextRaw,以获取类型为Mizuno.Data.Domain.Product

的属性Full_Description

查看Glass Mapper代码,看起来我必须设置一些config.Setting到SitecoreFieldSettings.RichTextRaw,但我不确定使用TDS生成的代码在什么地方/在哪里/如何执行此操作... < / p>

对此有任何见解都会有所帮助。

-Sarkis -

2 个答案:

答案 0 :(得分:1)

除非您更改标准TT模板,然后在TDS中使用自定义数据,否则我认为这不可能使用TDS。这可能需要做很多工作。

您可能更好地对原始模型进行子类化,然后添加不同的属性,我没有对此进行测试,但它应该可以工作:

public class ProductWrite : Mizuno.Data.Domain.Product {

    [SitecoreField(Settings = SitecoreFieldSettings.RichTextRaw)]
    public override string Full_Description { get; set; }

} 

让我知道这是否有效。

答案 1 :(得分:1)

嘿,这有点晚了,但我找到了解决方案。首先,您必须禁用该项目的代码生成。右键单击TDS项目,然后单击属性。在“无”中设置了一个名为“代码生成模板”的字段,在您的类中将其作为属性:

[SitecoreField("FieldName", Setting = SitecoreFieldSettings.RichTextRaw)]
public virtual string FieldName { get; set; }

希望有所帮助