Sitecore TDS代码生成和玻璃映射器

Sitecore TDS代码生成和玻璃映射器,sitecore,glass-mapper,tds,Sitecore,Glass Mapper,Tds,试图找出这是否值得追求: 我使用TDS自动生成我的模型。如果我使用Hedgehog.tt文件,它会为每个项目创建子项目的通用集合。我希望能够以强类型POCO的形式访问这些子项。代码生成将所有类型创建为partial,因此我创建了类的另一个partial版本,并创建stronly类型字段。如果我重新生成模型,我不会丢失这个强类型的分部类 例如: 以下是TDS自动生成的类: [SitecoreType(TemplateId=SiteHeaderConstants.TemplateIdString)]

试图找出这是否值得追求:

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

例如:

以下是TDS自动生成的类:

[SitecoreType(TemplateId=SiteHeaderConstants.TemplateIdString)]/,Cacable=true
公共部分类SiteHeader:IBaseGlassItem,ISiteHeader
{   
#区域接口成员
公共ID{get;set;}
公共ID TemplateID{get;set;}
公共语言{get;}
公共int版本{get;}
公共IBaseGlassItem父项{get;}
公共IEnumerable子项{get;}
公共字符串名称{get;}
#端区
}
具有强类型子项的新分部类:

public分部类SiteHeader
{
[SitecoreQuery(“./*[@@templateid=”+HeaderUtilityNavigationBarConstants.TemplateIdString+””],IsRelative=true)]
public IEnumerable HeaderUtilityNavigationBars{get;}
公共标题实用性导航栏GetUtilityNavigationBar()
{
返回HeaderUtilityNavigationBars.FirstOrDefault();
}
}
困扰我的是,我的类现在有一个通用的子项集合,还有一个单独的强类型项集合,其中一些是相同的项。这会对数据库造成两次影响吗?损害表现


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

默认情况下不会生成
父属性
子属性
,因此您的属性很可能已扩展。我的建议是删除这些,然后手动将它们添加到部分,但是自动生成或手动创建的模型主要是基于意见的。手动创建的模型当然是最灵活的。我喜欢使用Glass Mapper fluent API,这样我就可以在不需要任何Sitecore配置依赖项的情况下构建单元测试。默认情况下不会生成
父属性
子属性
,因此您的属性很可能已经扩展。我的建议是删除这些,然后手动将它们添加到部分,但是自动生成或手动创建的模型主要是基于意见的。手动创建的模型当然是最灵活的。我喜欢使用Glass Mapper fluent API,这样我就可以构建单元测试,而不需要任何Sitecore配置依赖项。