IDE 版本:Visual Studio 2017 15.9.7
asp.net core 版本 2.1.1
本文档说明需在
asp.net core webAPI学习笔记(一)项目搭建
的基础下进行
引入NuGet包 Entity Framework Core,因为使用的是SQL数据库,所以EFcore包含在了Microsoft.AspnetCore.App包中
修改appsettings.json,添加数据库连接字符串
"ConnectionStrings": {
// 数据库地址 数据库名 帐号 密码
"SqlConn": "Server=localhost;Database=testdb;User ID=sa;Password=sa.123;"
}
创建Book实体类
namespace ApiTest.Models
{
public class Book
{
public string ID { set; get; }
public string name { set; get; }
public string price { set; get; }
}
}
创建DataContext类
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
namespace ApiTest.Models
{
public class DataContext: DbContext
{
public DataContext() : base() { }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// 获取appsettings.json配置信息
var config = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
// 获取数据库连接字符串
string conn = config.GetConnectionString("SqlConn");
//连接数据库
optionsBuilder.UseSqlServer(conn);
}
public DbSet<Book> book { get; set; } // 不区分大小写,名称必须与数据库表名相同
}
}
创建Book控制器
using ApiTest.Models;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
namespace ApiTest.Controllers
{
[Route("api/[controller]")]
[EnableCors("cors")] //设置跨域处理的 代理
//[ApiController]
public class BookController : ControllerBase
{
// GET: api/Tiles
[HttpGet]
public OkObjectResult Get()
{
DataContext db = new DataContext();
List<Book> pList = db.book.ToList();
return Ok(from p in pList
select new
{
id = p.ID,
name = p.name,
price = p.price
});
}
}
}