【实例简介】麻雀虽小,五脏俱全,很经典
操作步骤:
1. 修改下 appsetting.json文件中的MySqlConnection 为你本机的 mysql账号密码
2. 运行webapi项目 即可看到 输出的webapi
【实例截图】
【核心代码】
Global中代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Microsoft.EntityFrameworkCore;
using Entity.Table;
using DAL;
using Service.ProductService;
namespace ASP.Net_Core_API
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(options =>
options.UseMySql(Configuration.GetConnectionString("MySqlConnection")));//添加Mysql支持
services.AddUnitOfWork();//添加UnitOfWork支持
services.AddScoped(typeof(IProductService), typeof(ProductService));//用ASP.NET Core自带依赖注入(DI)注入使用的类
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ProductContext context)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
context.Database.Migrate();//仅首次执行时需要打开此语句,用于初始化数据库
app.UseMvc();
}
}
}
迁移脚本如下:
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using System;
using System.Collections.Generic;
namespace DAL.Migrations
{
public partial class init : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Product",
columns: table => new
{
Id = table.Column(type: "bigint", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
Category = table.Column(type: "int", nullable: false),
CreteTime = table.Column(type: "datetime(6)", nullable: false),
Description = table.Column(type: "varchar(500)", maxLength: 500, nullable: false),
Discount = table.Column(type: "decimal(65, 30)", nullable: false),
Name = table.Column(type: "varchar(20)", maxLength: 20, nullable: false),
Price = table.Column(type: "decimal(65, 30)", nullable: false),
RowVersion = table.Column(type: "datetime(6)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Product", x => x.Id);
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Product");
}
}
}