dotnet core:如何获取实体框架以从配置文件中读取连接字符串?

时间:2018-07-13 12:11:50

标签: entity-framework .net-core asp.net-core-2.0

我正在将.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))
        {
          ...
        }
    }

1 个答案:

答案 0 :(得分:0)

我按照这些说明操作。

https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings#aspnet-core

请注意,您需要安装 EF 的 dotnet 核心版本。我安装了网络框架版本。