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;
}