带有 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/