Sitecore:Glass Mapper Code First

时间:2016-06-12 22:31:02

标签: sitecore code-first glass-mapper

可以自动生成仅编码模型的Sitecore模板吗?我使用Sitecore 8.0,我看到了Glass Mapper Code First方法,但我无法找到更多相关信息。

2 个答案:

答案 0 :(得分:4)

不确定为什么没有太多关于它的信息,但你绝对可以先建模/编码!我使用属性配置方法很多,如下所示:

[SitecoreType(true, "{generated guid}")]
public class ExampleModel 
{ 
    [SitecoreField("{generated guid}", SitecoreFieldType.SingleLineText)]
    public virtual string Title { get; set; }
}

现在这是如何运作的。第一个参数的SitecoreType“true”值表示它可以用于codefirst。有一个GlassCodeFirstDataprovider,它有一个Initialize方法,在Sitecore的Initialize管道中执行。此方法将收集为codefirst标记的所有配置,并在sql dataprovider中创建它。部分和字段存储在内存中。它还需要继承(基本模板)。

我认为您首先需要取消注释通过Nuget安装项目时获得的GlassMapperScCustom类中的一些代码。 PostLoad方法包含执行每个CodeFirstDataprovider的Initialize方法的几行。

var dbs = global::Sitecore.Configuration.Factory.GetDatabases();
foreach (var db in dbs)
{
    var provider = db.GetDataProviders().FirstOrDefault(x => x is GlassDataProvider) as GlassDataProvider;
    if (provider != null)
    {
        using (new SecurityDisabler())
        {
            provider.Initialise(db);
        }
    }
}

此外,我建议首先在开发时使用代码。您可以像往常一样创建包或序列化模板,并将它们部署到其他环境,这样您就不需要数据提供者(以及潜在的风险)。

答案 1 :(得分:2)

你可以。但它不会与玻璃相关。

代码优先正是Sitecore.PathFinder希望实现的目标。然而,目前还没有很多关于此的公开信息。

从这里开始:https://github.com/JakobChristensen/Sitecore.Pathfinder