using EFCore7Study.DataService.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using EntityFrameworkCore.UseRowNumberForPaging;
namespace EFCore7Study.DataService
{
///
/// 多构造函数
/// 为使用工厂方式注册,加 ActivatorUtilitiesConstructor 特性
///
public class AppDbContext : DbContext
{
///
/// 连接字符串,可实现属性设置,避免多构造函数在Factory时,IoC异常
///
public string? ConnectString = @"Server=127.0.0.1\SQL2019;Database=EFCore7Study;User Id=sa;Password=gly-bicijinlian;Encrypt=True;TrustServerCertificate=True;";
public AppDbContext()
{
}
public AppDbContext(DbContextOptions options) : base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
if (string.IsNullOrWhiteSpace(ConnectString))
{
ConnectString = @"Server=127.0.0.1\SQL2019;Database=EFCore7Study;User Id=sa;Password=gly-bicijinlian;Encrypt=True;TrustServerCertificate=True;";
}
optionsBuilder
.UseSqlServer(ConnectString, opt => { opt.UseRowNumberForPaging(); })
.EnableSensitiveDataLogging();
}
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity().ToTable("Account");
base.OnModelCreating(modelBuilder);
}
public DbSet Accounts { get; set; }
}
}