我如何在T4模板中使用我的EF上下文

本文关键字:我的 EF 上下文 T4 | 更新日期: 2023-09-27 18:01:39

我试图做一个相当简单的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;
#>
}

编译转换:类型或命名空间名称'MyProj'可以找不到(您是否丢失了using指令或程序集)参考?)

我不确定我这样做是否正确。我正在尝试包含具有。edmx文件的项目。

<#@ import namespace="MyProj.Data" #>

在"MyProj"项目中,app.config有一个名为"ProjectContext"的连接字符串。

我在我的项目中也有一个包含T4到MyProj的引用。数据项目。

我需要做些什么来绕过这个错误?

更新:

基于Yacoub Massad的评论。I changed

<#@ import namespace="MyProj.Data" #>

:

<#@ assembly name="MyProj.Data" #>

现在我得到这个错误:

正在编译转换:元数据文件MyProj。数据不可能找到

我如何在T4模板中使用我的EF上下文

我将保留这个问题,因为我认为评论中的汇编名称信息对开始使用T4模板的初学者很有价值。

如何实际使用EF DBContext的答案可以在这个问题中找到:

T4 -实体框架错误:Method not found: 'System.Data.Entity.DbSet ' 1

这个问题有一个循序渐进的答案