在程序包管理控制台中输入以下命令,记得首先程序编译得通过
Scaffold-DbContext 'Data Source=服务地址;Initial Catalog=数据库;User Id=用户名;Password=密码; integrated security=false;Encrypt=True;TrustServerCertificate=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir DB(目录下选择的文件夹) -Context DBContext(数据库上下文名称)
生成的上下文会有下面的一个方法(optionsBuilder.IsConfigured是是否已经配置连接了):
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer("Data Source=.;Initial Catalog=数据库名称;User Id=账号;Password=密码; integrated security=false;Encrypt=True;TrustServerCertificate=True;");
}
}
到这已经可以用了。
想配置文件配置连接字符串的话:
在appsettings.json文件中配置连接字符串
//连接字符串
"ConnectionStrings": {
"DB": "Data Source=服务地址;Initial Catalog=数据库;User Id=用户名;Password=密码;integrated security=True;Encrypt=True;TrustServerCertificate=True;' "
}
在Program类中注入上下文对象并从appsettings.json文件中读取连接字符串
//添加DBContext
builder.Services.AddDbContext<DBContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DB")));
怎么用:
using (DBContext db = new DBContext())
{
db.Add(实体);
db.SaveChanges();
}
当数据库中表发生更改时,可以直接使用下面命令在Nuget控制台中输入下面命令
Scaffold-DbContext 'Data Source=服务地址;Initial Catalog=数据库;User Id=用户名;Password=密码; integrated security=false;Encrypt=True;TrustServerCertificate=True;' Microsoft.EntityFrameworkCore.SqlServer -OutputDir DB(所在文件夹) -Context DBContext(上下文类名) -Force