仓储模式
.NET仓储模式是一种软件设计模式,用于将应用程序的数据访问逻辑与业务逻辑分离。它通过将数据访问操作封装在一个单独的仓储类中,使得业务逻辑层可以独立于具体的数据存储技术。
在.NET仓储模式中,仓储类负责处理与数据存储相关的操作,例如数据的增删改查、数据的持久化和查询等。它提供了一组公共的接口和方法,供业务逻辑层调用。业务逻辑层通过调用仓储类的方法来进行数据的读写操作,而不需要关心具体的数据存储细节。
.NET仓储模式的优点包括:
-
解耦性:仓储模式将数据访问逻辑与业务逻辑分离,使得它们可以独立开发、测试和维护,降低了代码的耦合度。
-
可测试性:由于仓储模式将数据访问逻辑封装在一个单独的类中,业务逻辑层可以通过模拟仓储类的行为进行单元测试,提高了代码的可测试性。
-
可扩展性:通过使用接口和抽象类,可以轻松地扩展和替换具体的数据存储技术,例如从关系型数据库切换到NoSQL数据库。
-
可维护性:由于仓储模式将数据访问逻辑集中在一个类中,使得对于数据访问操作的修改和维护更加方便。
总而言之,.NET仓储模式是一种将数据访问逻辑与业务逻辑分离的设计模式,通过提供一个统一的接口和方法,使得业务逻辑层可以独立于具体的数据存储技术。这种模式具有解耦性、可测试性、可扩展性和可维护性等优点。
项目架构(这里只是一个最基本的框架)
ORM
ORM选的是经典的EF Core,使用Code First的模式,Code First是EF Core的一种开发模式,它允许开发人员首先定义实体类,然后通过这些实体类来创建数据库和表结构。在Code First模式中,开发人员可以使用各种注解或Fluent API配置实体类的属性、关系和约束,EF Core会根据这些配置来生成数据库架构。
使用Code First模式,开发人员可以更加关注领域模型的设计和业务逻辑的实现,而无需过多关注数据库的细节。EF Core会自动根据实体类的定义生成对应的数据库表结构,并提供一系列的API来进行数据操作,包括增删改查等。
需要注意的是,虽然EF Core支持Code First开发模式,但也支持Database First和Model First两种开发模式。Database First是通过已存在的数据库架构生成实体类,Model First是通过可视化工具设计实体类和数据库架构。开发人员可以根据具体需求选择适合的开发模式来使用EF Core。
搭建EF
首先需要下载两个包:
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
版本最好是跟框架版本对应,避免一些未知的错误
下载完成之后,需要创建LearnDbContext类,继承DbContext,
展示实体内容:
准备完成之后,需要在Api层,对上下文进行注册,同时使用Nuget包下载Domain层的两个包,将下面的代码插入到Program.cs中
//MSSQL是连接数据库字符串
builder.Services.AddDbContext<LearnDbContext>(
d =>
{
d.UseSqlServer(builder.Configuration.GetConnectionString("MSSQL"));
});
//连接数据库字符串,在appsettings.json中定义
"ConnectionStrings": {
"MSSQL": "server=**;uid=**;pwd=****;database=*****"
},
至此,准备工作已经完成,可以测试一下EF是否能够迁移成功
迁移
在迁移的时候需要注意,将Api设置成启动项,否则会报错:
Unable to create an object of type 'ApplicationDbContext'......
然后打开程序包管理控制台,输入
Add-Migration ***(代表的是名字)
运行成功之后输入
Update-Database
出现Done的时候就代表迁移成功,可以查看数据库是否有生成
标签:逻辑,数据库,EF,模式,仓储,Net,搭建,First From: https://www.cnblogs.com/Dong-Dong-Xi/p/17719348.html