DbContext:
using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using System; using WebApi.Models; namespace WebApi.Data { public class DataMgrContext : DbContext { public readonly static IConfiguration configuration; static DataMgrContext() { configuration = new ConfigurationBuilder() .SetBasePath(Environment.CurrentDirectory) .AddJsonFile("appsettings.json", true, true) .AddInMemoryCollection() .Build(); } public static string connectionString { get { return configuration["ConnectionStrings:Default"]; } } public DataMgrContext(DbContextOptions<DataMgrContext> options) : base(options) { } public DataMgrContext() { } public DbSet<SysUser> SysUsers{ get; set; } public DbSet<Permission> Permissions { get; set; } public DbSet<Role> Roles { get; set; } public DbSet<RolePermission> RolePermissions { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { //映射数据库表名 //modelBuilder.Entity<Role>().ToTable("Role"); } protected override void OnConfiguring(DbContextOptionsBuilder options) { options.UseSqlServer(connectionString); } } }
appSettings.json
"ConnectionStrings": { "Default": "Data Source=.;Initial Catalog=efcoretest;User ID=sa;Password=111111" },
Startup.cs
public void ConfigureServices(IServiceCollection services) { services.AddDbContext<DataMgrContext>();//注入数据库服务 //... }
使用
using (var db = new DataMgrContext()) { db.Blogs.Add(dto); db.SaveChanges(); } //2 private readonly DataMgrContext db; public BlogController(DataMgrContext context) { db = context; }