.//0.安装:MySql
MySql.EntityFrameworkCore(5.05)
Microsoft.EntityFrameworkCore
//1.安装工具
PM>>Install-Package Microsoft.EntityFrameworkCore.Tools
//2.依据数据库生成类
PM>>Scaffold-DbContext "Server=172.16.88.89;port=3306;Database=testdb;uid=sa;pwd=123456;Character Set=utf8;" MySql.EntityFrameworkCore -OutputDir models2
执行:自动生成数据库表对应的类
// 3.查看工具的帮助
PM>>Get-Help about_EntityFrameworkCore
--Add-Migration Adds a new migration.
--Drop-Database Drops the database.
--Get-DbContext Gets information about a DbContext type.
--Remove-Migration Removes the last migration.
--Scaffold-DbContext Scaffolds a DbContext and entity types for a database.
--Script-Migration Generates a SQL script from migrations.
--Update-Database Updates the database to a specified migration.
应用
//注册
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
// services.AddDbContext<testdbContext>(options => options.UseMySQL("server=172.16.88.83;port=3306;database=dbtest;uid=sa;pwd=123456;CharSet=utf8"));
services.AddSingleton<Func<testdbContext>>(() =>
{
var optionsBuilder = new DbContextOptionsBuilder<testdbContext>();
optionsBuilder.UseMySQL("server=172.16.88.83;port=3306;database=dbtest;uid=sa;pwd=123456;CharSet=utf8");
return new testdbContext(optionsBuilder.Options);
});
services.AddSingleton(s =>
{
var optionsBuilder = new DbContextOptionsBuilder<testdbContext>();
optionsBuilder.UseMySQL("server=172.16.88.83;port=3306;database=dbtest;uid=sa;pwd=123456;CharSet=utf8");
return new testdbContext(optionsBuilder.Options);
});
});
//应用
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
testdbContext _coreDbContext;
public Worker(ILogger<Worker> logger, Func<testdbContext> dbContextFactory)
{
_logger = logger;
_coreDbContext = dbContextFactory.Invoke();
}
public Worker(ILogger<Worker> logger, testdbContext context)
{
_logger = logger;
testdbContext _coreDbContext = context;
}
public Worker(ILogger<Worker> logger, IServiceProvider _contextFactory)
{
_logger = logger;
var context = _contextFactory.GetService(typeof(testdbContext));
}
}