1

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

我使用 TDS 自动生成我的模型。如果我使用 Hedgehog .tt 文件,它会为每个项目创建一个通用的子项目集合。我希望能够以强类型 POCO 的形式访问这些子项。代码生成将所有类型都创建为部分类型,因此我制作了我的类的另一个部分版本,并创建了 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();
    }

}

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

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

4

0 回答 0