.net core Webapi +EF
程序员文章站
2023-11-14 17:10:28
开发工具 Vs2017 +MSsqlsever 打开VS2017,新建web项目 点击确认,生成项目,在项目中增加文件夹Model,在Model中增加类TodoItem 1 public class TodoItem 2 { 3 public long Id { get; set; } 4 publ ......
开发工具 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,以及传参的事情
推荐阅读
-
.net core 开发 Windows Forms 程序
-
[翻译] .NET Core 3.0 Preview 9 发布
-
从零开始搭建前后端分离的NetCore2.2(EF Core CodeFirst+Autofac)+Vue的项目框架之七使用JWT生成Token(个人见解)
-
.net core Webapi +EF
-
asp.net core系列 72 Exceptionless使用介绍
-
web API ,net - .net core 对比学习-文件目录概述
-
Docker中如何调试剖析.net core 的程序。
-
asp.net core 使用 AccessControlHelper 控制访问权限
-
张高兴的 .NET Core IoT 入门指南:(五)串口通信入门
-
树莓派(4B)Linux + .Net Core嵌入式-HelloWorld(二)