马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

.net core Webapi +EF

[复制链接]
查看2800 | 回复0 | 2019-9-12 16:22:54 | 显示全部楼层 |阅读模式

开辟工具 Vs2017 +MSsqlsever

打开VS2017,新建web项目

162337goq7j7nlro7ln7nx.png

162338w7y00iyq87vjyaya.png

点击确认,天生项目,在项目中增加文件夹Model,在Model中增加类TodoItem

162339fo8bfoc20r8no7u2.gif
162339s5h9jpprjjj3v4v9.gif
  1. 1 public class TodoItem
  2. 2 {
  3. 3 public long Id { get; set; }
  4. 4 public string Name { get; set; }
  5. 5 public bool IsComplete { get; set; }
  6. 6
  7. 7 }
复制代码
View Code

在Model中增加类TodoContext,用于与数据库的交互

162339tsjmnknk77cnrjcl.gif
162339auj9vpmisi9bmv3o.gif
  1. 1 public class TodoContext : DbContext
  2. 2 {
  3. 3 public TodoContext(DbContextOptions<TodoContext> options)
  4. 4 : base(options)
  5. 5 {
  6. 6 }
  7. 7
  8. 8 public DbSet<TodoItem> TodoItems { get; set; }
  9. 9 }
复制代码
View Code

打开appsettings.json,设置数据库毗连字符串

  1. {
  2. "Logging": {
  3. "LogLevel": {
  4. "Default": "Warning"
  5. }
  6. },
  7. "AllowedHosts": "*",
  8. "ConnectionStrings": {
  9. "TodoContext": "Server=.;Database=WebApiDemo;Trusted_Connection=True;MultipleActiveResultSets=true"
  10. }
  11. }
复制代码

在Startup中,找到注册服务的方法ConfigureServices中注册数据库上下文,并指定数据库为sqlserver

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. services.AddDbContext<Models.TodoContext>(opt =>
  4. opt.UseSqlServer(Configuration.GetConnectionString("TodoContext"))); //使用SqlServer数据库
  5. services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
  6. }
复制代码

至此,根本的设置已经完成,现在用EF的codefirst方式,创建数据库,通过工具-》NuGet包管理器--》步伐包管理器控制台 调出控制台

162339wx4w7ofnqy6wzqrt.png

下令如下:

  1. Add-Migration Initial
  2. Update-Database
复制代码

  现在数据库就已经搭建完毕

162340yv4db3w2zpbk1jpj.png

接下来我们在Control文件夹下增加TodoController

  1. [Route("api/[controller]")]
  2. [ApiController]
  3. public class TodoController : ControllerBase
  4. {
  5. private readonly TodoContext _context;
  6. public TodoController(TodoContext context)
  7. {
  8. _context = context;
  9. if (_context.TodoItems.Count() == 0)
  10. {
  11. // Create a new TodoItem if collection is empty,
  12. // which means you can't delete all TodoItems.
  13. _context.TodoItems.Add(new TodoItem { Name = "Item1" });
  14. _context.SaveChanges();
  15. }
  16. }
  17. // GET: api/Todo
  18. [HttpGet]
  19. public async Task<ActionResult<IEnumerable<TodoItem>>> GetTodoItems()
  20. {
  21. return await _context.TodoItems.ToListAsync();
  22. }
  23. // GET: api/Todo/5
  24. [HttpGet("{id}")]
  25. public async Task<ActionResult<TodoItem>> GetTodoItem(long id)
  26. {
  27. var todoItem = await _context.TodoItems.FindAsync(id);
  28. if (todoItem == null)
  29. {
  30. return NotFound();
  31. }
  32. return todoItem;
  33. }
  34. }
复制代码

  至此,整个Api项目已经搭建完毕,现在可以验证是否OK

162341ycdjgj5t3jcb99cq.png

看到调用API,已经乐成返回值,接下来一篇我们就聊聊常用的Post和Get,以及传参的变乱







来源:https://www.cnblogs.com/NotLaterforever/p/11480341.html
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则