试图弄清楚这是否值得追逐:
我使用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();
}
}
困扰我的是,我的班级现在有一个通用的子项集合,以及一个单独的集合我的强类型项目,其中一些是相同的项目。这会打两次数据库吗?伤害表现?
我的另一个选择是放弃自动代码生成并自己创建类,我可以随意输入它们。