EF5数据库第一个用于类生成的模型模板(tt)

时间:2013-02-02 03:13:00

标签: entity-framework domain-driven-design entity-framework-5 n-layer

我想让从现有数据库创建的所有实体都从相同的接口继承。

我想这可以通过模板完成。我已经看到了那个丑陋的.tt文件,但没有任何帮助(或者我没有找到它)。

有模板的任何文档,示例,......

常见范例有任何提示或预制模板,例如N层设计或域驱动设计?

1 个答案:

答案 0 :(得分:2)

查找“T4模板”。这将为您介绍T4模板(.tt文件)。 通过一些搜索,您可以轻松地将此模板扩展到您的需要。我已经自己做了,但是使用了EF4的模板。我不知道模板是否不同。

我为此做了一些辅助函数:

string Interfaces(EntityType entity)
{
    string interfaces = string.Empty;

    if (entity.Members.OfType<EdmProperty>().Any(edmProperty => edmProperty.Name == "Guid" && ((PrimitiveType)edmProperty.TypeUsage.EdmType).PrimitiveTypeKind == PrimitiveTypeKind.Guid))
    {
        interfaces += ", IHasWritableGuid";
    }

    return interfaces;
}

模板写入实际实体类的部分(这在新模板中肯定有所不同)在EF4模板中略低于“Write EntityType classes.”。

<#=Accessibility.ForType(entity)#>
<#=code.SpaceAfter(code.AbstractOption(entity))#>
partial class
<#=code.Escape(entity)#> :
<#=BaseTypeName(entity, code)#>
<#= Interfaces(entity) #>

这里我刚刚添加了对我的接口方法的调用。

我知道这不是确切的答案,但它应该可以帮助您自己编辑模板文件。只是咬自己。 :)