Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架6与DNX的连接字符串_Entity Framework_Connection String_Dnx - Fatal编程技术网

Entity framework 实体框架6与DNX的连接字符串

Entity framework 实体框架6与DNX的连接字符串,entity-framework,connection-string,dnx,Entity Framework,Connection String,Dnx,据我所知,EntityFramework6神奇地实现了app.config/web.config中的连接字符串。DbContext文档中的备注部分: 如果从派生上下文调用无参数DbContext构造函数,则派生上下文的名称将用于在app.config或web.config文件中查找连接字符串 对于无参数构造函数或具有连接字符串名称的情况: 除了使用派生上下文名称,还可以通过将名称传递给采用字符串的DbContext构造函数之一来显式指定连接/数据库名称。该名称还可以以“name=myname”的

据我所知,EntityFramework6神奇地实现了app.config/web.config中的连接字符串。DbContext文档中的备注部分:

如果从派生上下文调用无参数DbContext构造函数,则派生上下文的名称将用于在app.config或web.config文件中查找连接字符串

对于无参数构造函数或具有连接字符串名称的情况:

除了使用派生上下文名称,还可以通过将名称传递给采用字符串的DbContext构造函数之一来显式指定连接/数据库名称。该名称还可以以“name=myname”的形式传递,在这种情况下,必须在配置文件中找到该名称,否则将引发异常


但是,在DNX项目中,我没有app.config或web.config。如何在DNX项目的Entity Framework 6中指定连接?

至少对于代码优先的方法,不需要app.config或web.config。连接字符串可以在任何配置文件中定义,甚至可以在没有硬编码的情况下定义(这不是一个好的做法)

在ASP.NET 5和EF6中,可以像往常一样在config.json文件中指定连接字符串。当然,这假设从json文件加载配置为@Martijn:

向project.json添加两个包:

"dependencies": {
  "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta8",
  "Microsoft.Framework.Configuration.Json": "1.0.0-beta8"
}
将config.json添加到项目中:

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Data Source=(local);Database=EfExample;Integrated Security=True"
    }
  }
}
在Program.cs中加载配置(该类在beta8之后可能无效):

现在可以使用创建DbContext

 new ApplicationDbContext(Configuration["Data:DefaultConnection:ConnectionString"])
假设您已经有了
ApplicationDbContext
的构造函数,如下所示

    public ApplicationDbContext(string nameOrConnectionString)
        : base(nameOrConnectionString)
    {
    }
如果您想了解更多关于DNX配置的信息,我在以下网站上发布了相关博客:


关于ASP.NET 5和EF6的不同配置问题的更多信息可以在这里找到(不过主要集中在MVC项目上),包括mssql、localdb、postgresql的配置,以及避免其他app.config问题:

至少对于代码优先的方法,不需要app.config或web.config。连接字符串可以在任何配置文件中定义,甚至可以在没有硬编码的情况下定义(这不是一个好的做法)

在ASP.NET 5和EF6中,可以像往常一样在config.json文件中指定连接字符串。当然,这假设从json文件加载配置为@Martijn:

向project.json添加两个包:

"dependencies": {
  "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta8",
  "Microsoft.Framework.Configuration.Json": "1.0.0-beta8"
}
将config.json添加到项目中:

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Data Source=(local);Database=EfExample;Integrated Security=True"
    }
  }
}
在Program.cs中加载配置(该类在beta8之后可能无效):

现在可以使用创建DbContext

 new ApplicationDbContext(Configuration["Data:DefaultConnection:ConnectionString"])
假设您已经有了
ApplicationDbContext
的构造函数,如下所示

    public ApplicationDbContext(string nameOrConnectionString)
        : base(nameOrConnectionString)
    {
    }
如果您想了解更多关于DNX配置的信息,我在以下网站上发布了相关博客:


关于ASP.NET 5和EF6的不同配置问题的更多信息可以在这里找到(不过主要集中在MVC项目上),包括mssql、localdb、postgresql的配置,以及避免其他app.config问题:

可能重复@DavidG该问题有一定帮助,但假设类似“startup.cs”的东西这是MVC6特有的。我不是在做MVC6项目。那你在做什么?@DavidG目前是一个控制台应用程序(尽管这个问题不是专门针对任何“项目类型”,一个一般性的答案对我来说更有价值;它也可以是一个Win10通用应用程序。对每个项目类型,一般性地问一次这个问题似乎比单独问一次更有用。)这里的答案假设(至少)安装的预发行版软件包
Microsoft.Framework.ConfigurationModel
Microsoft.Framework.ConfigurationModel.Json
(它提供
IConfiguration
Configuration
)是(我假设)ASP 5项目中隐含的。这些事情不是不可能找到的,但是一个好的答案IMO应该包括这些问题。可能重复@DavidG这个问题会有所帮助,但假设是“startup.cs”,这是MVC 6特有的。我不是在做MVC6项目。那你在做什么?@DavidG目前是一个控制台应用程序(尽管这个问题不是专门针对任何“项目类型”,一个一般性的答案对我来说更有价值;它也可以是一个Win10通用应用程序。对每个项目类型,一般性地问一次这个问题似乎比单独问一次更有用。)这里的答案假设(至少)安装的预发行版软件包
Microsoft.Framework.ConfigurationModel
Microsoft.Framework.ConfigurationModel.Json
(它提供
IConfiguration
Configuration
)是(我假设)ASP 5项目中隐含的。这些事情并非不可能找到,但一个好的答案应该包括这些问题。