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