您现在的位置是:主页 > Web前端技术 > Web前端技术

.NET 6开发TodoList应用中如何引入数据存储开发技术

IDCBT2021-12-27服务器技术人已围观

简介小编给大家分享一下.NET6开发TodoList应用中如何引入数据存储,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 一.需求 作为后端 CRUD 程序员(bushi,数据存储是开

小编给大家分享一下.NET 6开发TodoList应用中如何引入数据存储,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

      一.需求

      作为后端CRUD程序员(bushi,数据存储是开发后端服务一个非常重要的组件。对我们的TodoList项目来说,自然也需要配置数据存储。

      目前的需求很简单:

        需要能持久化TodoList对象并对其进行操作;

        需要能持久化TodoItem对象并对其进行操作;

        问题是,我们打算如何存储数据?

        存储组件的选择非常多:以MSSQL Server/Postgres/MySql/SQLite等为代表的关系型数据库,以MongoDB/ElasticSearch等为代表的非关系型数据库,除此之外,我们还可以在开发阶段选择内存数据库,在云上部署的时候还可以选择类似Azure Cosmos DB/AWS DynamoDB以及云上提供的多种关系型数据库。

        应用程序使用数据库服务,一般都是借助成熟的第三方ORM框架,而在.NET后端服务开发的过程中,使用的最多的两个ORM框架应该是:EntityFrameworkCore和Dapper,相比之下,EFCore的使用率更高一些。所以我们也选择EFCore来进行演示。

        二.目标

        在这篇文章中,我们仅讨论如何实现数据存储基础设施的引入,具体的实体定义和操作后面专门来说。

          使用MSSQL Server容器作为数据存储组件(前提是电脑上需要安装Docker环境,下载并安装Docker Desktop即可);

          这样选择的理由也很简单,对于使用Mac的小伙伴来说,使用容器来启动MSSQL Server可以避免因为非Windows平台导致的示例无法运行的问题。

          三.原理和思路

          因为我们对开发环境和生产环境的配置有差异,那先来看看共性的部分:

            引入EFCore相关的nuget包并进行配置;

            添加DbContext对象并进行依赖注入;

            修改相关appsettings.{environment}.json文件;

            主程序配置。

            本地运行MSSQL Server容器并实现数据持久化;

            同上一篇一样,和具体的第三方对接的逻辑我们还是放到Infrastructure里面去,应用程序中只保留对外部服务的抽象操作。

            四.实现
            1. 引入Nuget包并进行配置

            需要在Infrastructure项目中引入以下Nuget包:

            Microsoft.EntityFrameworkCore.SqlServer
            
            # 第二个包是用于使用PowerShell命令(Add-Migration/Update-Database/...)需要的,如果使用eftool,可以不安装这个包。
            Microsoft.EntityFrameworkCore.Tools

            为了使用eftool,需要在Api项目中引入以下Nuget包:

            Microsoft.EntityFrameworkCore.Design

            标签:

            很赞哦! ()

本栏推荐