TDS代码生成和Glass Mapper

时间:2016-01-25 21:36:05

标签: sitecore glass-mapper tds

试图弄清楚这是否值得追逐:

我使用TDS自动生成我的模型。如果我使用Hedgehog .tt文件,它会为每个项目创建一个子项的通用集合。我希望能够以强类型POCO的形式访问这些子项。代码生成将所有类型创建为partial,因此我创建了我的类的另一个部分版本,并创建了stronly类型的字段。如果我重新生成我的模型,我不会丢失这种强类型的部分类。

示例:

以下是TDS自动生成的课程:

[SitecoreType(TemplateId=SiteHeaderConstants.TemplateIdString)] //, Cachable = true
public partial class SiteHeader  : IBaseGlassItem, ISiteHeader 
{   
    #region interface members

    public ID ID { get; set; }
    public ID TemplateID { get; set; }
    public Language Language { get; }
    public int Version { get; }
    public IBaseGlassItem Parent { get; }
    public IEnumerable<IBaseGlassItem> Children { get; }
    public string Name { get; }

    #endregion
}

我的强类型子项目的新部分课程:

public partial class SiteHeader
{
    [SitecoreQuery("./*[@@templateid='" + HeaderUtilityNavigationBarConstants.TemplateIdString + "']", IsRelative = true)]
    public IEnumerable<HeaderUtilityNavigationBar> HeaderUtilityNavigationBars { get; }

    public HeaderUtilityNavigationBar GetUtilityNavigationBar()
    {
        return HeaderUtilityNavigationBars.FirstOrDefault();
    }

}

困扰我的是,我的班级现在有一个通用的子项集合,以及一个单独的集合我的强类型项目,其中一些是相同的项目。这会打两次数据库吗?伤害表现?

我的另一个选择是放弃自动代码生成并自己创建类,我可以随意输入它们。

0 个答案:

没有答案