.net core Webapi +EF
程序员文章站
2022-06-29 09:38:29
开发工具 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,以及传参的事情
下一篇: 五彩缤纷的做法你知道吗?
推荐阅读
-
ASP.NET Core MVC 过滤器的使用方法介绍
-
Asp.Net Core基于JWT认证的数据接口网关实例代码
-
浅谈ASP.NET Core 2.0 部分视图(译)
-
分享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo的入门级微服务开发框架
-
.net core 2.1 Nlog.Web.AspNetCore Nlog日志
-
.net core 简单定时程序
-
【5min+】 一个令牌走天下!.Net Core中的ChangeToken
-
abp(net core)+easyui+efcore实现仓储管理系统——多语言(十)
-
.net core的服务器模式和工作站模式
-
.net core 程序发布后报错误,如何配置输出详细的错误日志