Jan*_*Jan 5 c# entity-framework entity-framework-core
我想在我的 .net Framework 4.7 项目中首先使用 EF Core 2.2 和数据库。运行此命令可以正常工作:
Scaffold-DbContext "data source=dbServer;initial catalog=myData;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Database
Run Code Online (Sandbox Code Playgroud)
但随后 MS 放下了这个警告:
警告 为了保护连接字符串中潜在的敏感信息,您应该将其从源代码中移出。有关存储连接字符串的指南,请参阅 http://go.microsoft.com/fwlink/?LinkId=723263。
所以我认为我按照指示进行并更新了脚本如下:
Scaffold-DbContext "name=MyConnection" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Database
Run Code Online (Sandbox Code Playgroud)
这导致此错误:
使用了命名连接字符串,但在应用程序的配置中找不到名称“MyConnection”。请注意,仅在使用“IConfiguration”和服务提供程序时才支持命名连接字符串,例如在典型的 ASP.NET Core 应用程序中。有关详细信息,请参阅https://go.microsoft.com/fwlink/?linkid=850912。
命名连接本身工作正常,我已经通过注释掉由 EF 核心生成的第一行并利用第二行来测试它:
//optionsBuilder.UseSqlServer("data source=dbServer;initial catalog=myData;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework");
optionsBuilder.UseSqlServer(ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString);
Run Code Online (Sandbox Code Playgroud)
启动程序它可以连接并按预期显示数据。但我更愿意在 Scaffold-DbContext 中设置该设置。有任何想法吗?
为了完整起见,这里是 app.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="MyConnection" connectionString="data source=dbServer;initial catalog=myData;integrated security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
...
Run Code Online (Sandbox Code Playgroud)
EF Core2.2:Scaffold-DbContext 无法在 WPF 项目中使用命名连接字符串
事实。两个错误信息
请注意,仅在使用服务提供程序时才支持命名连接字符串
IConfiguration
,例如在典型的 ASP.NET Core 应用程序中。
和参数的Scaffold-DbContext命令文档-Connection
...对于 ASP.NET Core 2.x 项目,该值可以是name=<连接字符串的名称>。在这种情况下,名称来自为项目设置的配置源......
Scaffold-DbContext
指示命名连接字符串不能与基于“旧版”(NET Framework)的项目中的命令一起使用app.config
。
所以Scaffold-DbContext
你必须使用实际的连接字符串。并在此处命名连接字符串(我猜这是警告):
optionsBuilder.UseSqlServer(
ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2665 次 |
最近记录: |