解决DomainModelTemplate中的类型问题

时间:2015-02-24 21:19:24

标签: code-generation devforce

我正在为基础模型中的特定实体添加基类。为此,我按照以下链接中的示例进行了跟踪:

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

My * .tt文件看起来与第一个链接中的示例完全相同,第二个链接中列出了Assembly包含。

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

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?)

您能否提供解决此事的任何协助?

1 个答案:

答案 0 :(得分:2)

所以我使用ildasm挖掘了IdeaBlade.VisualStudio.OM.CodeGenerator.EF5.dll,并且能够通过完全限定对象的命名空间来解决我的问题。

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

我还必须在标题中添加一些程序集导入。我现在看起来像:

<#@ 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文档尚未完成。