【发布时间】:2022-10-25 06:17:14
【问题描述】:
我在 .NET 6 中使用 Entity Framework Core 6 做我的第一个应用程序,首先使用数据库和Scaffold-DbContext 命令来创建DbContext。
我遇到的唯一问题是尝试使用 Name={connection string name} 参数而不是嵌入连接字符串。该应用程序是一个简单的控制台应用程序(不是 ASP.NET 应用程序),带有一个 app.config 文件(由于其他原因不能使用 JSON 配置文件)。我将连接添加到配置文件中,例如:
<connectionStrings>
<add name="MyDatabase"
connectionString="Server=xxxxxxx;Database=xxxxxxx;Trusted_Connection=True"/>
</connectionStrings>
我收到此错误:
使用了命名连接字符串,但在应用程序的配置中找不到名称“ClientServices”。请注意,仅在使用“IConfiguration”和服务提供者时才支持命名连接字符串,例如在典型的 ASP.NET Core 应用程序中。请参阅https://go.microsoft.com/fwlink/?linkid=850912 了解更多信息。
我需要做什么才能让
Scaffold-DbContextName参数可以找到我的连接字符串?查看错误中的链接,但没有帮助 - 用于 ASP.NET 应用程序。
【问题讨论】:
-
是否有任何理由避免使用 ConfigureService 方法的 ASP.Net 类 Startup 类?您可以拥有类似 ASP.Net 的服务配置类吗?
-
控制台应用程序可以使用相同的通用主机/DI/appsettings.json 模式。使用顶级构建器或
CreateHostBuilder方法,命令行工具可以发现您的配置和类型。 -
非常感谢!我会试试的。
标签: c# entity-framework-core asp.net-core-scaffolding