1.连接环境需要引入的NuGet包
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
注意:小伙伴们注意我NuGet包引入的版本都是8.0.7,尽量跟你创建的Web项目版本一样(8.+都行),如果不同后面脚手架生成会报错的应该是兼容性或者依赖性的问题等等
这个就是建Web项目框架的版本
环境配置就可以进行连接了
2.在appsettings文件配置我们的连接字符串
"ConnectionStrings": {
"DefaultString": "Data Source=Win10p22h2vm;Initial Catalog=UserInfo; User ID=sa;Password=123456;TrustServerCertificate=True"
},
要把连接字符串改成自己的奥
Data Source是连接数据的服务器名称
Initial Catalog是数据库的名称
User ID=name;Password=******对应数据库使用Sql server身份认证的方式登录的账号密码
TrustServerCertificate=True证书链接的问题,加上可以绕过这个问题
3.创建数据库数据库上下文DataContext,继承EF Core的DbContext
using Microsoft.EntityFrameworkCore;
namespace Sql_Server_Tools.Models
{
public class DataContext:DbContext
{
//这段代码定义了一个构造函数。DataContext 类继承自某个基类(是 DbContext ),
//通过这个构造函数接收 DbContextOptions<DataContext> 类型的参数,并将其传递给基类的构造函数。
//这使得 DataContext 能够获取和使用配置的数据库连接选项
public DataContext(DbContextOptions<DataContext> options):base(options)
{
}
//OnModelCreating方法是EF Core 的 DbContext 类中用于自定义实体模型的配置和关系映射的
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
}
//这是重写了基类中的 OnConfiguring 方法。在这个方法中,调用了基类的同名方法。通常,在这个方法中可以进行一些额外的数据库配置设置,
//比如设置连接字符串、启用日志记录、配置数据库提供程序的特定选项等。但在当前给出的代码中,没有进行额外的自定义配置。
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
}
}
}
4.使用脚手架生成数据库上下文,以及实体类
4.1:在界面最上方找到工具-》NuGet包管理器-》程序包管理器控制台
4.2输入命令
Scaffold-DbContext "YourConnectionString" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
Scaffold-DbContext:是 Entity Framework Core 工具提供的一个命令,用于根据现有数据库结构生成数据库上下文和实体类
"
YourConnectionString
"
:这是数据库的连接字符串也就是上面在appsettings文件中配置的连接字符串
Microsoft.EntityFrameworkCore.SqlServer:指定要使用的数据库提供程序,这里表示使用的是针对 SQL Server 的提供程序
-OutputDir Models:这是一个选项,用于指定生成的实体类和数据库上下文文件的输出目录。在这个例子中,生成的文件将被放置在名为
Models
的文件夹中(也可以自己定义一个路径哦)
我的命令就是这样子的
Build started...开始构建
Build succeeded 构建成功
黄色警告是连接字符串不安全,可以不用管(上面我讲了如果版本不同就可能会导致这里会生成报错的)
可以看到脚手架已经都帮助我们都生成好了上下文和实体类,非常方便
5.在Program文件来配置连接服务注入
//配置连接服务数据库上下文注入
string ConnectionString = builder.Configuration.GetConnectionString("DefaultString");
builder.Services.AddDbContext<UserInfoContext>(options => options.UseSqlServer(ConnectionString));
6.上面配置完就可以对我们的数据库进行增删改查的操作啦,我自己写了简单的查询来测试一下是否可以正常对数据库进行操作,看如下图可以看出也是可以操作的
最后的最后,细节的小伙伴会发现我们写了两个数据库上下文的DataContext和UserInfoContext,一个里面什么都没有写,一个是脚手架帮助我们写的,我们的列表查询操作就是对UserInfoContext进行的操作,这里说一下,我们自己创建的上下文的类可以不用写,也是可以的,自己定义一个上下文类它可以满足定制化需求,处理一些关系复杂的配置等等,练习的时候还是写上养成好的习惯,好了,结束
版权归原作者 rong_k 所有, 如有侵权,请联系我们删除。