解决域模型模板类型的问题

Trouble Resolving Types from DomainModelTemplate

我正在努力为我的对象模型中的特定实体添加基础 class。为此,我遵循了以下 link 中的示例:

http://drc.ideablade.com/devforce-2012/bin/view/Documentation/model-custom-base-class

http://drc.ideablade.com/devforce-2012/bin/view/Documentation/custom-code-generation-template

我的 *.tt 文件看起来与第一个 link 中的示例完全一样,其中包含在第二个 link 中列出的程序集。

目前我在编译转换时遇到两个错误:

Compiling transformation: The type or namespace name 'EntityOrComplexTypeWrapper' could not be found (are you missing a using directive or an assembly reference?)
Compiling transformation: The type or namespace name 'EntityTypeWrapper' could not be found (are you missing a using directive or an assembly reference?)

你能帮忙解决这个问题吗?

所以我使用 ildasm 深入研究了 IdeaBlade.VisualStudio.OM.CodeGenerator.EF5.dll,并且能够通过完全限定 objects' 命名空间来解决我的问题。

IdeaBlade.VisualStudio.OM.CodeGenerator.Metadata.EntityOrComplexTypeWrapper
IdeaBlade.VisualStudio.OM.CodeGenerator.Metadata.EntityTypeWrapper

我还必须向 header 添加一些程序集导入。我的现在看起来像:

<#@ template  language="C#" debug="true" hostSpecific="true" #>
<#@ output extension=".ReadMe" #>
<#@ Assembly Name="Microsoft.VisualStudio.TextTemplating.12.0" #>
<#@ Assembly Name="IdeaBlade.VisualStudio.OM.CodeGenerator.EF5.dll" #>
<#@ import namespace="IdeaBlade.VisualStudio.OM.CodeGenerator" #>
<#@ import namespace="IdeaBlade.VisualStudio.OM.CodeGenerator.Metadata" #>
<#@ Assembly Name="IdeaBlade.Core.dll" #>
<#@ import namespace="IdeaBlade.Core" #>
<#@ Assembly Name="IdeaBlade.EntityModel.Edm.Metadata.dll" #>
<#@ import namespace="IdeaBlade.EntityModel.Edm.Metadata" #>

此功能的 DevForce 文档不完整。