zoukankan      html  css  js  c++  java
  • .net core Webapi +EF

    开发工具 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     }
    View Code

    在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     }
    View Code

    打开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,以及传参的事情

  • 相关阅读:
    WebDriverException:Message:'geckodriver'executable needs to be in Path
    如何使用NSDL玩转微信跳一跳
    python多线程下载网页图片并保存至特定目录
    sql之将一个表中的数据注入另一个表中
    sql之分区域分段统计
    sql之分段统计
    ajax二次封装之异步加载
    vue组件之echarts报表
    url查询参数解析
    template.js 数据渲染引擎
  • 原文地址:https://www.cnblogs.com/NotLaterforever/p/11480341.html
Copyright © 2011-2022 走看看