我正在从一个空的ASP.NET Core 2模板创建一个新的网站,并按照Microsoft Entity Framework Tutorial帮助我进行设置.有一点,你有添加代码:
services.AddDbContext<SchoolContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
Run Code Online (Sandbox Code Playgroud)
对ConfigureServices()方法Startup.cs.我这样做,但在我的项目的Visual Studio给我那个小红线下Configuration的Configuraiton.GetConnectionString
我以为我错过了一个声using明甚至是一个包,但是Visual Studio 2017快速操作并没有识别出using要使用的语句,而且我确实安装了Microsoft.AspNetCore.All包,所以我应该拥有所有包.
我错过了什么使得Configuration不被认可?
编辑:错误是:
"配置"名称在当前上下文中不存在
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<CollectionContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc();
}
Run Code Online (Sandbox Code Playgroud) c# entity-framework-core asp.net-core asp.net-core-2.0 asp.net-core-3.0
在遵循Kyle Simpson 在Pluralsight上的Advanced JavaScript 时,我遇到了这段代码,它应该证明函数声明在变量声明之前得到(预)编译:
foo();
var foo = 2;
function foo() { console.log("bar"); }
function foo() { console.log("foo"); }
Run Code Online (Sandbox Code Playgroud)
(请注意,上面的代码要么输入一行有空格而不是换行符,要么使用SHIFT+ENTER防止在输入整个代码之前立即执行。)在Node中输入上面整个代码的立即结果或 (Chrome) 控制台(并按 Enter 键)是:
foo
< undefined
Run Code Online (Sandbox Code Playgroud)
解释 Kyle 的解释,第一个function foo声明被第二个覆盖,因此foo输出到控制台,并且由于foo已经声明为函数,var foo因此(预)编译器忽略该声明。
眼前的结果支持了理论忽略,然而,随后的调查foo和foo()展示一个不同的故事:
> foo
2
> foo()
Uncaught TypeError: foo is not a function
>
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么以及何时被忽略的声明var foo = 2;生效,当立即执行产生时:
foo
< undefined
Run Code Online (Sandbox Code Playgroud)
我的理解是 JavaScript 引擎(预)编译解析步骤应该注意两个函数的声明,然后是变量的声明,按照这个顺序,然后,在执行步骤,foo(); …