下载NuGet 包 Microsoft.EntityFrameworkCore.SqlSer 和Microsoft.EntityFrameworkCore包
1、创建Model 实体层。里面主要存放数据库表,一个类就相当于一张表,类里面属性就是表字段,得和数据库保持一致。
在Startup ConfigureServices类里面添加 //连接数据库
services.AddDbContext<ChContext>(t => { t.UseSqlServer(Configuration.GetConnectionString("CH")); });
services.AddCors(t =>
{
// 指定能访问的域名
t.AddPolicy("LimitRequests", policy =>
{
policy
.AllowAnyHeader()
.AllowAnyMethod()
.AllowAnyOrigin();//允许任何来源的主机访问
});
});
在appsettings.json 里面添加连接字符串
"ConnectionStrings": {"CH": "server=127.0.0.1;database=Blockchain;uid=sa;pwd=123456;"}
添加一个数据库类继承:DbContext,存放数据库中的各个表,在数据库类里面 添加构造函数继承:base(dbContext)
public class ChContext: DbContext
{
public ChContext(DbContextOptions<ChContext> dbContext) : base(dbContext)
{
}
public DbSet<类名> 类名 { get; set; }
}
2、创建DAL数据层。里面主要是对数据库数据的操作。添加Model层引用。
依赖注入的构造方法注入,要访问数据库中的表。
private readonly ChContext _context;
public UserSeiver(ChContext context)
{
_context = context;
}
3、创建BLL逻辑层。里面主要是对代码逻辑的操作。添加DAL层引用。
依赖注入的构造方法注入,要访问DAL的方法。
private readonly UserSeiver Seiver;
public UserMannager(UserSeiver seiver)
{
Seiver = seiver;
}
4、在视图层。里面主要是视图显示。添加BLL层引用。
依赖注入的构造方法注入,要访问BLL的方法。
[ApiController]
[Route("User")]
public class UserController : Controller
{
private readonly UserMannager Mannager;
public UserController(UserMannager mannager)
{
Mannager = mannager;
}
[HttpPost]
[Route("Login")]
public T_Users LoginAsync(T_Users model)
{
return Mannager.LoginAsync(model);
}
}
5、使用 Autofac实现批量注入
下载 Autofac 包和Autofac.Extensions.DependencyInjection 包
创建 AutofacModuleRegister类继承Autofac.Module
public class AutofacModuleRegister : Autofac.Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterAssemblyTypes(GetAssemblyByName("BLL"));
builder.RegisterAssemblyTypes(GetAssemblyByName("DAL"));
}
/// <summary>
/// 根据程序集名称获取程序集
/// </summary>
/// <param name="assemblyName">程序集名称</param>
public static Assembly GetAssemblyByName(string assemblyName)
{
return Assembly.Load(assemblyName);
}
}
在 Program主函数里面添加 .UseServiceProviderFactory(new AutofacServiceProviderFactory())//改用Autofac来实现依赖注入
在Startup 类里面添加 ConfigureContainer方法
public void ConfigureContainer(ContainerBuilder builder)
{
// 直接用Autofac注册我们自定义的
builder.RegisterModule(new AutofacModuleRegister());
}