我正在将.NET 4.x应用程序(类库和MS Test项目,没有Web应用程序)迁移到dotnet core 2.1,并且我不知道如何将SQL数据库连接字符串传递给Entity Framework。
在.NET 4.x中,我有app.config,并且此代码和实体框架神奇地使用了app.config文件中的连接字符串。容易:)
<connectionStrings>
<add name="ApplicationDataConnectionString" connectionString="" providerName="System.Data.SqlClient" />
和一个DBContext,在其中传递数据库名称
public class ApplicationDataDbContext : DbContext
{
…
public ApplicationDataDbContext(string databaseName) : base("name=ApplicationDataConnectionString")
{
}
Dotnet核心没有app.config和配置管理器。因此,...我可以从配置文件中读取连接字符串,然后执行类似的操作,但是我是如何从那里将其传递给DBContext的,我不知道...加上这种方法也感觉很错误。
public class ApplicationDataDbContext : DbContext
{
…
public ApplicationDataDbContext(string databaseName) : base("name=ApplicationDataConnectionString")
{
_config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
var myConnectionString = _config.GetConnectionString("ApplicationData");
}
这就是我使用DBContext的方式
public void SomeMethod()
{
using (var context = new ApplicationDataDbContext(Common.Constants.ApplicationDataDBName))
{
...
}
}
答案 0 :(得分:0)
我按照这些说明操作。
https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings#aspnet-core
请注意,您需要安装 EF 的 dotnet 核心版本。我安装了网络框架版本。