- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
基于EF Core + MySQL的基本增删改查,示例是基于 .NET6 + EF Core + MySQL 创建实体和数据库、EFCore 数据迁移 项目基础上的内容增加。同时也是对 基于Canal实现MySQL 8.0 数据库数据同步 项目的验证.
Controllers---->添加---->控制器,选择api---->包含读写操作的API控制器.
将上下文类注入到UsersController中,ASP.NET Core 支持依赖关系注入 (DI) 软件设计模式,这是一种在类及其依赖关系之间实现控制反转 (IoC) 的技术。有三种具体实现方式,我们这里用到的是构造函数注入,关于这块的内容,以后我们也可以专门出一期。直接上代码.
private readonly MyDataBaseContext_mian _dbmain;
private readonly MyDataBaseContext_from _dbfrom;
public UsersController(MyDataBaseContext_mian dbmain, MyDataBaseContext_from dbfrom)
{
_dbmain = dbmain;
_dbfrom = dbfrom;
}
一下内容是UsersController的完整内容 。
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 });
}
}
}
}
注:我对方法进行的改造,采用官网提供的新写法,有兴趣的小伙伴可以看看官网.
到此,EFCore的增删改查就完事了。有不懂的小伙伴可以把问题打在评论区,我来为大家解答.
最后此篇关于EFCore+MySQL基本增删改查的文章就讲到这里了,如果你想了解更多关于EFCore+MySQL基本增删改查的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
自动生成字段值,咱们首先想到的是主键列(带 IDENTITY 的主键)。EF Core 默认的主键配置也是启用 Identity 自增长的,而且可以自动标识主键。前提是代表主键的实体属性名要符合以下规
上次老周扯了有关主、从实体的话题,本篇咱们再挖一下,主、从实体之间建立的关系,跟咱们常用的一对1、一对多这些关系之间有什么不同。 先看看咱们从学习数据库开始就特熟悉的常用关系——多对多、一对
前言 基于EF Core + MySQL的基本增删改查,示例是基于 .NET6 + EF Core + MySQL 创建实体和数据库、EFCore 数据迁移 项目基础上的内容增加。同时也是
前言 EFCore.BulkExtensions是一个常用的EF core 批量处理数据的库. 但是支持的数据库相对较少.特别是.NET5.0版本 连MySQL都无法支持 这个库就是改造的
我试图在我的上下文类中设置一对一的外键关系,但我不断收到以下错误。我找到了一个 similar post但这似乎并没有解决我的问题,因为我在模型中明确指定了关系。我确认: Server 对象引用了一个
运行 dotnet ef migrations add XYZ将导致 a Migrations directory being created在项目中。这个目录是否应该提交给版本控制(Git 等)?
我试图围绕 EF Cores 拥有的对象以及如何控制何时加载某些数据块。 基本上我有一堆旧的遗留表(一些有大约 150 列),并希望使用一个根实体和每个表的几个拥有的对象对它们进行建模,以实现更好的分
我的模型包含 Post 和 PostHistory 类,其中 Post 与 PostHistory 具有一对多关系。 class Post { public int Id { get; set
我有一个 .Net Core WebApplication 项目,其中上下文类位于类库中。如果我在 OnConfiguring(DbContextOptionsBuilder optionsBuild
我正在尝试使用 Entity Framework Core 2.0.1 将现有的 PostgreSQL 数据库转换为实体,但在搭建脚手架时出现错误。数据库是通过运行以下脚本创建的: Script To
我在一个项目中有两个实体:SupplierFinishingItem 和 ProductOptionListItem。 ProductOptionListItem 通过导航属性引用另一个。 当我尝试创
我已经在 this 之后使用 .Net core 和 EFCore 创建了一个 API使用 VSCode 的教程。 我的 MySQL 数据库有很多模型,因为我正在“迁移”我的 EF6 和 asp.ne
目录 一 代码分析 1 GetTableName 2&n
我正在尝试根据实体特定字段中的搜索值列表来过滤实体。 例如: var searchValues = new List { "abc", "xyz" }; var posts = Context.Pos
我有一个在表中创建列的迁移。 public partial class AddName : Migration { protected override void Up(MigrationBu
Ef Core 接收错误 System.InvalidOperationException: Can't process set operations afterclient evaluation,
我有以下型号。在使用 find 方法从数据库中获取时,用子实体加载父实体的更好方法是什么? 父实体: public class Client { public int Id { get; se
我正在使用 EFCore 做一个原型(prototype),并努力寻找一种返回我刚刚添加到实体集合中的对象的好方法。 例如: public Songleader AddSongleader(int c
这个问题已经有答案了: How is Identity.EntityFramework OnModelCreating called (2 个回答) 已关闭12 个月前。 我知道当您创建迁移时它会被调
这个问题已经有答案了: How is Identity.EntityFramework OnModelCreating called (2 个回答) 已关闭12 个月前。 我知道当您创建迁移时它会被调
我是一名优秀的程序员,十分优秀!