c# - 从 EF6 模型自动生成的 TT 文件渲染默认参数说明符不允许错误

标签 c# asp.net model entity-framework-6

带有 Update 5 的 Visual Studio 2013、指向 .NET Framework 4.5、C# 5 语言的新 Web 应用程序项目 (WinForms)。我尚未为该项目创建任何表单、任何加载项或任何 Nu-Get 包。我没有添加任何额外的引用文献。我创建了该项目并使用 NuGet 添加 Entity Framework 6.1.1。

免责声明:我是 Entity Framework 的新手。

我创建了一个非常简单的 SQL Server 2008R2 数据库,其中包含三个表。在该项目中,我添加了一个新的 ADO.Net 实体数据模型并将其指向数据库。该模型似乎正确生成,以及相应的 .Context.tt、.designer.cs、.edmx.Diagram 和 .tt 文件。

但是,当我选择打开 .Context.tt 文件时,我收到 37 个编译器错误,其中包括“不允许使用默认参数说明符”。关于UsingDirectives 函数。所有其他错误都是基于自动生成的参数存在的语法错误。我到处寻找有此问题的人,并且除了“.NET 必须采用 4.0”之外的解决方案,语言必须采用 C# 5.0,因为该项目是这样配置的。还有什么可能导致我的项目中存在这种情况?

预先感谢您的任何想法。

public string UsingDirectives(bool inHeader, bool includeCollections = true)
{
    return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion())
        ? string.Format(
            CultureInfo.InvariantCulture,
            "{0}using System;{1}" +
            "{2}",
            inHeader ? Environment.NewLine : "",
            includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "",
            inHeader ? "" : Environment.NewLine)
        : "";
}

最佳答案

我的问题的答案似乎是使用 DevArt T4 编辑器。根据培训视频的推荐,我安装了它以使文本模板更具可读性。我使用的是1.0.9版本。我的理论是,此扩展使用 .NET 3.5 框架库进行语法检查,并在我的错误列表中创建错误。然而,.tt 实际上一直在工作。我禁用了扩展程序,错误消失了,我继续前进。我希望这可以帮助其他可能在代码中遇到莫名其妙错误的人。

关于c# - 从 EF6 模型自动生成的 TT 文件渲染默认参数说明符不允许错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31952192/

相关文章:

C# tcp 套接字定义客户端

C# Pdf 到带有图像占位符的文本

c# - 在大型文本文件中定位包含特定单词的行的最快方法

c# - 协方差 反方差

asp.net - 如何捕获或拦截ODataException以返回自定义错误有效载荷

php - Laravel 4 - 无法覆盖模型保存方法

Asp.net 图像按钮没有 onClick 事件

c# - 我可以在 MVC 中使用我心爱的 Calendar Extender 吗?

ios - 如何使用MVC获取变量

mongodb - Mongoose.find() 如何查询属性大于某个数字或值为空或属性不存在的文档?