我想让我从现有数据库中创建的所有实体都继承自同一个接口。
我想这可以通过模板来完成。而且我看过那个丑陋的.tt
文件,但没有帮助(或者我没有找到它)。
有模板的任何文档、示例……吗?
有任何常见范例的提示或预制模板,例如 N 层设计或领域驱动设计?
我想让我从现有数据库中创建的所有实体都继承自同一个接口。
我想这可以通过模板来完成。而且我看过那个丑陋的.tt
文件,但没有帮助(或者我没有找到它)。
有模板的任何文档、示例……吗?
有任何常见范例的提示或预制模板,例如 N 层设计或领域驱动设计?
寻找“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;
}
模板编写实际实体类的部分(这在新模板中肯定有所不同)Write EntityType classes.
在 EF4 模板中的“”下方。
<#=Accessibility.ForType(entity)#>
<#=code.SpaceAfter(code.AbstractOption(entity))#>
partial class
<#=code.Escape(entity)#> :
<#=BaseTypeName(entity, code)#>
<#= Interfaces(entity) #>
在这里,我只是添加了对我的接口方法的调用。
我知道这不是确切的答案,但它应该可以帮助您自己编辑模板文件。只是咬住自己。:)