如何在我的 T4 模板中使用我的 EF 上下文?
How do I use my EF context in my T4 template?
我正在尝试做一个相当简单的 TF,它会生成一个项目列表,但在我这样做之前,我想设置我的 DBContext。我正在尝试以下操作:
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Configuration" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Configuration" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="MyProj.Data" #>
<#@ output extension=".cs" #>
namespace ModelGenerator
{
<#
MyProj.Data.ProjectContext db;
#>
}
Compiling transformation: The type or namespace name 'MyProj' could
not be found (are you missing a using directive or an assembly
reference?)
我不确定我这样做是否正确。我正在尝试包含具有 .EDMX 文件的项目。
<#@ import namespace="MyProj.Data" #>
在 "MyProj" 项目中有 app.config 有一个名为“ProjectContext.
的连接字符串
我的项目中也有一个引用,其中包含 MyProj.Data 项目的 T4。
我需要做什么才能克服这个错误?
更新:
基于 Yacoub Massad 的评论。我改变了
<#@ import namespace="MyProj.Data" #>
对此:
<#@ assembly name="MyProj.Data" #>
现在我收到这个错误:
Compiling transformation: Metadata file 'MyProj.Data' could not be
found
我打算留下这个问题,因为我认为评论中的程序集名称信息对开始使用 T4 模板的初学者很有价值。
如何实际使用 EF DBContext 的答案可以在这个问题中找到:
这个问题有分步说明的答案。
我正在尝试做一个相当简单的 TF,它会生成一个项目列表,但在我这样做之前,我想设置我的 DBContext。我正在尝试以下操作:
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Configuration" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Configuration" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="MyProj.Data" #>
<#@ output extension=".cs" #>
namespace ModelGenerator
{
<#
MyProj.Data.ProjectContext db;
#>
}
Compiling transformation: The type or namespace name 'MyProj' could not be found (are you missing a using directive or an assembly reference?)
我不确定我这样做是否正确。我正在尝试包含具有 .EDMX 文件的项目。
<#@ import namespace="MyProj.Data" #>
在 "MyProj" 项目中有 app.config 有一个名为“ProjectContext.
的连接字符串我的项目中也有一个引用,其中包含 MyProj.Data 项目的 T4。
我需要做什么才能克服这个错误?
更新:
基于 Yacoub Massad 的评论。我改变了
<#@ import namespace="MyProj.Data" #>
对此:
<#@ assembly name="MyProj.Data" #>
现在我收到这个错误:
Compiling transformation: Metadata file 'MyProj.Data' could not be found
我打算留下这个问题,因为我认为评论中的程序集名称信息对开始使用 T4 模板的初学者很有价值。
如何实际使用 EF DBContext 的答案可以在这个问题中找到:
这个问题有分步说明的答案。