7.Entity Framework Core CRUD

1.实体状态

数据库上下文会跟踪内存中的实体并设置该实体的状态,从而决定调用 SaveChanges 方法时发出的SQL命令,最终实现与数据库中相应的行同步。

实体状态由 DbContext 跟踪SaveChanges操作
Detached————
Unchanged————
AddedINSERT
ModifiedUPDATE
DeletedDELETE

2.增删改查

//查询所有
_context.Students.ToListAsync();
//查询单个(可调用Include)
_context.Students.FirstOrDefaultAsync(m => m.ID == id);
//查询单个(性能更优,不可调用Include)
_context.Students.FindAsync(id);
//增加
_context.Students.Add(student); 
//简写
_context.Add(student); 
//更改所有列
_context.Students.Update(student); 
//简写
_context.Update(student); 

//仅更改已更新的列
TryUpdateModelAsync<Student>(
    studentToUpdate,
    "",
    s => s.FirstMidName, s => s.LastName, s => s.EnrollmentDate)
//删除
_context.Students.Remove(student); 
//简写
_context.Remove(student); 
//保存更改
await _context.SaveChangesAsync();

3.防止过多发布(OverPost)

//Create场景:Bind特性
[Bind("ID,EnrollmentDate,FirstMidName,LastName")]
//Edit场景:TryUpdateModelAsync方法
//首先从数据库读取实体
var studentToUpdate = await _context.Students.FirstOrDefaultAsync(s => s.ID == id);
//然后调用TryUpdateModel
TryUpdateModelAsync<Student>(
    studentToUpdate,
    "",
    s => s.FirstMidName, s => s.LastName, s => s.EnrollmentDate)

4.相关查询

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/csharp/entityframeworkcore/15180.html

(0)
上一篇 2022年6月6日 23:46
下一篇 2022年6月8日 21:31

相关推荐

发表回复

登录后才能评论