前言
基于EF Core + MySQL的基本增刪改查,示例是基于.NET6 + EF Core + MySQL 創(chuàng)建實體和數(shù)據(jù)庫、EFCore 數(shù)據(jù)遷移項目基礎(chǔ)上的內(nèi)容增加。同時也是對基于Canal實現(xiàn)MySQL 8.0 數(shù)據(jù)庫數(shù)據(jù)同步項目的驗證。
創(chuàng)建控制器
Controllers---->添加---->控制器,選擇api---->包含讀寫操作的API控制器。
依賴注入
將上下文類注入到UsersController中,ASP.NET Core 支持依賴關(guān)系注入 (DI) 軟件設(shè)計模式,這是一種在類及其依賴關(guān)系之間實現(xiàn)控制反轉(zhuǎn) (IoC) 的技術(shù)。有三種具體實現(xiàn)方式,我們這里用到的是構(gòu)造函數(shù)注入,關(guān)于這塊的內(nèi)容,以后我們也可以專門出一期。直接上代碼。
private readonly MyDataBaseContext_mian _dbmain;
private readonly MyDataBaseContext_from _dbfrom;
public UsersController(MyDataBaseContext_mian dbmain, MyDataBaseContext_from dbfrom)
{
_dbmain = dbmain;
_dbfrom = dbfrom;
}
CRUD基本代碼
一下內(nèi)容是UsersController的完整內(nèi)容
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using test.Models;
using test.MyDataBaseContext;
namespace test.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class UsersController : Controller
{
private readonly MyDataBaseContext_mian _dbmain;
private readonly MyDataBaseContext_from _dbfrom;
public UsersController(MyDataBaseContext_mian dbmain, MyDataBaseContext_from dbfrom)
{
_dbmain = dbmain;
_dbfrom = dbfrom;
}
[HttpGet]
// GET: UsersController
public IEnumerable<User> Index()
{
return _dbfrom.Users.ToList();
}
[HttpGet("{id}")]
// GET: UsersController/Details/5
public async Task<IActionResult> Details(int? id)
{
return CreatedAtAction(nameof(Index), await _dbfrom.Users.AsNoTracking().FirstOrDefaultAsync(m => m.UserId == id));
}
// POST: UsersController/Create
[HttpPost]
public async Task<IActionResult> Create(User user)
{
_dbmain.Users.Add(user);
await _dbmain.SaveChangesAsync();
return CreatedAtAction(nameof(Index), new { id = user.UserId }, user);
}
// POST: UsersController/Edit/5
[HttpPut("{id}")]
public async Task<bool> Edit(int? id, [FromBody] User user)
{
_dbmain.Set<User>().Update(user);
return await _dbmain.SaveChangesAsync() > 0;
}
// POST: UsersController/Delete/5
[HttpDelete("{id}")]
public async Task<IActionResult> Delete(int id)
{
User user = new User();
user = await _dbmain.Users.FindAsync(id);
if (user == null)
{
return RedirectToAction(nameof(Index));
}
try
{
_dbmain.Users.Remove(user);
await _dbmain.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
catch (DbUpdateException /* ex */)
{
//Log the error (uncomment ex variable name and write a log.)
return RedirectToAction(nameof(Index), new { id = id, saveChangesError = true });
}
}
}
}
注:我對方法進行的改造,采用官網(wǎng)提供的新寫法,有興趣的小伙伴可以看看官網(wǎng)。
swagger接口測試文檔看效果
向主庫添加用戶信息
從庫查詢用戶信息
從庫查詢詳細信息
主庫修改用戶信息
再從從庫查詢用戶信息
文章來源:http://www.zghlxwxcb.cn/news/detail-476635.html
刪除用戶信息
到此,EFCore的增刪改查就完事了。有不懂的小伙伴可以把問題打在評論區(qū),我來為大家解答。文章來源地址http://www.zghlxwxcb.cn/news/detail-476635.html
到了這里,關(guān)于EF Core + MySQL 基本增刪改查的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!