EF输出SQL语句
引入Microsoft.Extensions.Logging.Debug包,DbContext
public class MySqlDbContext : Microsoft.EntityFrameworkCore.DbContext { public static readonly LoggerFactory LoggerFactory = new LoggerFactory(new[] { new DebugLoggerProvider() }); public MySqlDbContext(DbContextOptions<MySqlDbContext> options) : base(options) { } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { //注入Sql链接字符串 //optionsBuilder.UseMySql(@""); base.OnConfiguring(optionsBuilder); optionsBuilder.UseLoggerFactory(LoggerFactory); } public MySqlDbContext() { //配置数据库链接,即可在其他地方用 new MySqlDbContext() 使用EF上下文 } protected override void OnModelCreating(ModelBuilder modelBuilder) { #region 用户-角色 角色-菜单 部门-用户 的多对多关系 modelBuilder.Entity<DeptUser>().HasKey(k => new { k.DeptId, k.UserId }); modelBuilder.Entity<RoleMenu>().HasKey(k => new { k.MenuId, k.RoleId }); modelBuilder.Entity<UserRole>().HasKey(k => new { k.RoleId, k.UserId }); #endregion base.OnModelCreating(modelBuilder); } #region 测试的 public virtual DbSet<Models.TestTableA> TestTableA { get; set; } public virtual DbSet<Models.TestTableB> TestTableB { get; set; } #endregion }