【发布时间】:2017-07-17 16:52:20
【问题描述】:
最近我创建了一个 ASP.NET Core(多平台)项目和一个 ClassLibrary,用于使用 VS2017 管理 SQL Server 数据库模型。
实际上我们在生产服务器中有一个数据库,我需要使用 dotnet ef dbcontext scaffold [arguments] [options] ... 命令行生成类,但是我需要在创建 DbContext 类时单数化类名。
请,需要帮助!谢谢
【问题讨论】:
-
我从未这样做过,但我猜您将需要更新 T4 模板文件。它本质上是编写文件的说明。它是告诉代码为类文件创建什么的代码。如果您更新它可能相当于找到遍历表的循环,而不是为每个表创建一个文件,只需将一个类附加到单个文件。或者,您可以创建所有文件,然后创建一个售后应用程序,然后将它们混合到一个文件中。无论哪种方式都足够了。
-
你能告诉我VS2017中T4模板文件的路径吗,我找到了路径C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Data,但是有几个文件夹在其中 tt 文件具有相同的名称
-
没什么复杂的。当您创建实体文件(edmx)文件时。你有几个层次。有文件、说明((名称).context.tt 和(名称).tt)以及创建的文件。您需要扩展您的 edmx 文件并更新 (name).tt 文件以获得您想要的内容。但是你需要学习一点T4语言。请注意,您可能会在这条路线上严重破坏现有代码,因此请小心并进行备份。您也可以组成第二个 T4 来运行。这是一个链接:msdn.microsoft.com/en-us/library/…
-
我通过实现 IDesignTimeServices 找到了替代方案,如romiller.com/2017/02/10/… 中所述,但是,没有很好地解释如何与 Scaffold-DbContext 或 dotnet ef dbcontext ...命令一起使用。有人知道哪种参数适用于这种实现吗?
-
直截了当的文章meziantou.net/2017/06/26/…
标签: c# entity-framework asp.net-core ef-database-first