官术网_书友最值得收藏!

Registering the context in services (.NET Core DI)

The dependency injection support in the ASP.NET framework came too late for the .NET developers/architects who were seeking shelter from third-party tools such as Ninject, StructureMap, Castle Windsor, and so on. Finally, we gained support from ASP.NET Core. It has most of the features from the third-party DI providers, but the only difference is the configuration should happen inside the Startup.cs middleware.

First thing's first, let's configure the connection string in our new appSettings.json:

    "ConnectionStrings": {
"DefaultConnection": "Server
(localdb)\\mssqllocaldb;Database=MasteringEFCoreBlog;
Trusted_Connection=True;MultipleActiveResultSets=true"
},

Then configure the context as a service (all service configuration goes into Startup.cs). To support that, import MasteringEFCore.Web.Data and Microsoft.EntityFrameworkCore in the Startup class. Finally, add the DbContext to the services collection by creating and including DbContextOptionsBuilder using UseSqlServer():

    public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddDbContext<BlogContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("
DefaultConnection"
)));
services.AddMvc();
}

We will be using a lightweight version of SQL Server called LocalDB for development. This edition was created with the intention of development, so we shouldn't be using it in any other environments. It runs with very minimal configuration, so it's invoked while running the application. The .mdf database file is stored locally. 

We have configured the database context using dependency injection, and at this stage, we are good to go. We are almost there. As of now, we have the schema required for the database and the context for EF and services being configured. All of these will end up providing an empty database with literally no values in it. Run the application and see that an empty database is created. It will be of no use. In the next section, let's see how we can seed the database with master data/create tables with sample data, which can be consumed by the application.

主站蜘蛛池模板: 城口县| 龙口市| 河池市| 武冈市| 波密县| 庄河市| 宣恩县| 镇原县| 安徽省| 汉中市| 河间市| 大悟县| 沁阳市| 开封市| 商河县| 阜宁县| 包头市| 油尖旺区| 包头市| 汪清县| 绥中县| 新巴尔虎左旗| 布尔津县| 锡林浩特市| 盘锦市| 台湾省| 天等县| 县级市| 清徐县| 专栏| 陆川县| 富宁县| 漳州市| 西贡区| 钟山县| 高雄县| 鲁山县| 体育| 浠水县| 蒲城县| 泰宁县|