当我将模板安装到与edmx的名称空间不同的名称空间时,由于缺少名称空间,因此生成的代码有错误。
因此,我试图添加一个“ using”语句来解决此问题,但我不知道如何获取edmx所在的名称空间。
到目前为止,我已经(为了简洁起见,已对此进行了编辑:
<#@ template debug="true" hostspecific="true" language="C#" #> <#@ include file="EF.Utility.CS.ttinclude"#> <#@ output extension=".cs"#> const string edmxFile = @"../Entities/NorthwindEntities.edmx"; CodeGenerationTools code = new CodeGenerationTools(this); string namespaceName = code.VsNamespaceSuggestion(); string edmxNamespaceName = "???"; using System; using System.Data.Objects; using System.Data.Objects.DataClasses; using <#= edmxNamespaceName #>; namespace <#= namespaceName #> { // ... }
请帮助我解决“ edmxNamespaceName”。
谢谢!
当我将模板安装到与edmx命名空间不同的命名空间中时,由于缺少命名空间,因此生成的代码有错误。因此,我正在尝试向...
您可以使用MetadataLoader类
这很旧,但是由于我偶然发现它以寻找答案,因此我将提供所发现的... * .tt的属性包括一个名为“自定义工具命名空间”的选项。这将覆盖MetadataLoader的使用,后者会查看物理结构来确定名称空间。我必须为旧数据库第一个项目的.Context.tt和.tt文件都设置此选项。