ASP.NET CORE WebAPIはEntityFrameworkに基づいてCRUDの追加削除を実現

2170 ワード

WebAPIはPost Get Put Deleteによって追加削除を実現--EntityFrameworkに基づく


Get実装情報クエリー

       //Get:api/todoapi
        [HttpGet]
        public async Task>> GetTodoItems()
        {
            return await _context.TodoItem.ToListAsync();
        }

        //Get:api/todoapi/id
        [HttpGet("{id}")]
        public async Task> GetTodoItem(long id)
        {
            //FindAsync   id  
            var todoItem = await _context.TodoItem.FindAsync(id);
            if (todoItem == null)
            {
                //  404
                return NotFound();
            }
            //     json  
            return todoItem;
        }

Postインプリメンテーション情報作成

        //Post:api/todoapi
        [HttpPost]
        public async Task> PostTodoItem(TodoItem item)
        {
            _context.TodoItem.Add(item);
            await _context.SaveChangesAsync();
            //CreatedAtAction(actionName,routeValues,value).
            return CreatedAtAction(nameof(GetTodoItem), new { id = item.Id }, item);
        }

Put実装情報修正

        //Put:api/todoapi/id
        [HttpPut("{id}")]
        public async Task PutTodoItem(long id,TodoItem item)
        {
            if (id != item.Id)
            {
                return BadRequest();
            }
            _context.Entry(item).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return NoContent();
        }

Delete実装情報削除
 //Delete:api/todoapi/id
        [HttpDelete("{id}")]
        public async Task DeleteTodoItem(long id)
        {
            var todoItem = await _context.TodoItem.FindAsync(id);

            if (todoItem == null)
            {
                return NotFound();
            }
            _context.TodoItem.Remove(todoItem);
            await _context.SaveChangesAsync();

            return NoContent();
        }