ask*_*otl 2 c# visual-studio entity-framework-core asp.net-core asp.net-core-2.2
创建 ASP.NET Core 2.2 Web API 时,Visual Studio 2019 会创建以下代码:
namespace myapi
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么要创建一个函数CreateWebHostBuilder?为什么它不只是创建如下代码?
namespace myapi
{
public class Program
{
public static void Main(string[] args)
{
WebHost.CreateDefaultBuilder(args).UseStartup<Startup>().Build().Run();
}
}
}
Run Code Online (Sandbox Code Playgroud)
该CreateWebHostBuilder方法是通过实体框架的核心工具使用,描述在这里:
调用的代码
CreateDefaultBuilder位于名为 的方法中CreateWebHostBuilder,该方法将其与Main调用Runbuilder 对象的代码分开。如果您使用Entity Framework Core 工具,则需要这种分离。这些工具希望找到一种CreateWebHostBuilder可以在设计时调用的方法,以在不运行应用程序的情况下配置主机。另一种方法是实现IDesignTimeDbContextFactory. 有关更多信息,请参阅设计时 DbContext 创建。
如果您不使用 EF Core,则可以Main按照您的建议将其折叠到方法中。
| 归档时间: |
|
| 查看次数: |
2951 次 |
| 最近记录: |