開發工具 Vs2017 +MSsqlsever
打開VS2017,新建web項目


點擊確認,生成項目,在項目中增加文件夾Model,在Model中增加類TodoItem
1 public class TodoItem 2 { 3 public long Id { get; set; } 4 public string Name { get; set; } 5 public bool IsComplete { get; set; } 6 7 }
在Model中增加類TodoContext,用於與數據庫的交互
1 public class TodoContext : DbContext 2 { 3 public TodoContext(DbContextOptions<TodoContext> options) 4 : base(options) 5 { 6 } 7 8 public DbSet<TodoItem> TodoItems { get; set; } 9 }
打開appsettings.json,配置數據庫連接字符串
{ "Logging": { "LogLevel": { "Default": "Warning" } }, "AllowedHosts": "*", "ConnectionStrings": { "TodoContext": "Server=.;Database=WebApiDemo;Trusted_Connection=True;MultipleActiveResultSets=true" } }
在Startup中,找到注冊服務的方法ConfigureServices中注冊數據庫上下文,並指定數據庫為sqlserver
public void ConfigureServices(IServiceCollection services) { services.AddDbContext<Models.TodoContext>(opt => opt.UseSqlServer(Configuration.GetConnectionString("TodoContext"))); //使用SqlServer數據庫 services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); }
至此,基本的配置已經完成,現在用EF的codefirst方式,創建數據庫,通過工具-》NuGet包管理器--》程序包管理器控制台 調出控制台

命令如下:
Add-Migration Initial Update-Database
現在數據庫就已經搭建完畢

接下來我們在Control文件夾下增加TodoController
[Route("api/[controller]")]
[ApiController]
public class TodoController : ControllerBase
{
private readonly TodoContext _context;
public TodoController(TodoContext context)
{
_context = context;
if (_context.TodoItems.Count() == 0)
{
// Create a new TodoItem if collection is empty,
// which means you can't delete all TodoItems.
_context.TodoItems.Add(new TodoItem { Name = "Item1" });
_context.SaveChanges();
}
}
// GET: api/Todo
[HttpGet]
public async Task<ActionResult<IEnumerable<TodoItem>>> GetTodoItems()
{
return await _context.TodoItems.ToListAsync();
}
// GET: api/Todo/5
[HttpGet("{id}")]
public async Task<ActionResult<TodoItem>> GetTodoItem(long id)
{
var todoItem = await _context.TodoItems.FindAsync(id);
if (todoItem == null)
{
return NotFound();
}
return todoItem;
}
}
至此,整個Api項目已經搭建完畢,現在可以驗證是否OK

看到調用API,已經成功返回值,接下來一篇我們就聊聊常用的Post和Get,以及傳參的事情
