开发工具 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,以及传参的事情
黄山市民网:https://www.huangshanshimin.com/