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