【问题标题】:How do I use my EF context in my T4 template?如何在 T4 模板中使用我的 EF 上下文?
【发布时间】:2016-08-16 00:14:54
【问题描述】:

我正在尝试做一个相当简单的 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”的连接字符串。

我的项目中还有一个引用,其中包含 MyProj.Data 项目的 T4。

我需要做什么才能克服这个错误?

更新:

基于 Yacoub Massad 的评论。我变了

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

到这里:

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

现在我收到此错误:

编译转换:元数据文件“MyProj.Data”不能 找到了

【问题讨论】:

  • 通过&lt;#@ assembly name=...包含包含ProjectContext类的程序集
  • @YacoubMassad - 那没用。我又犯了一个错误。查看更新后的问题。
  • 我猜@YacoubMassad 意味着你需要同时拥有 和
  • 哦,我想我明白了。试试看这个链接:stackoverflow.com/questions/16962170/…
  • @EtienneBaudoux - 我明白你在说什么。您必须包含 .dll - 我克服了最初的错误。现在正在研究不同的。感谢您的链接。

标签: c# entity-framework t4


【解决方案1】:

我将保留这个问题,因为我认为 cmets 中的程序集名称信息对于开始使用 T4 模板的初学者很有价值。

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

T4 - Entity Framework Error: Method not found: 'System.Data.Entity.DbSet`1

这个问题有一个分步说明的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多