赞
踩
一、EFCore介绍
Entity Framework Core
是轻量化、可扩展、开源和跨平台版的常用Entity Framework
数据访问技术。EF Core
可用作对象关系映射程序 (O/RM),这可以实现以下两点:
EF Core
支持多个数据库引擎。 二、什么是ORM
就是让开发者用对象操作的形式操作关系数据库
代码层面:写C#对象,把C#对象扔给ORM引擎,ORM引擎负责把对象存储到关系数据库里边
取数据的时候 写C#代码 ORM引擎会把C#代码转化为Sql语句到关系数据库取数据,然后把去到的结果通过ORM引擎转化为C#对象,最终拿到的还是C#对象
有哪些ORM:EFcore、Dapper、SqlSugar、FreeSql
三、EFCore和其他的ORM比较
1、Entity Framework Core(EF Core)是微软官方的ORM框架优点:功能强大、官方支持、生产效率高、力求屏蔽底层数据库差异;缺点: 复杂、上手门槛高、不熟悉EFCore的话可能会进坑。
2、Dapper。优点:简单,N分钟即可上手,行为可预期性强;剑点:生产效率低,需要处理底层数据库差异。
3、EF Core是模型驱动(Model-Driven)的开发思想,Dapper是数据库驱动(DataBase-Driven)的开发思想的。没有优劣,只有比较。
4、性能: Dapper等≠性能高; EF Coref性能差。5、EF Core是官方推荐、推进的框架,尽量屏蔽底层数据库差异,.NET开发者必须熟悉,根据的项目情况再决定用哪个。
四、增删改查
1、添加数据
- //dbcontext 逻辑上的数据库,并不是真实的
- Book book1 = new Book { AuthorName = "lty1", Tittle = "深入浅出EFCore", Price = 1.80, PublicTime = new DateTime(2021, 12, 16) };
- Book book2 = new Book { AuthorName = "lty2", Tittle = "深入浅出数据结构", Price = 1.80, PublicTime = new DateTime(2021, 12, 16) };
- Book book3 = new Book { AuthorName = "lty3", Tittle = "深入浅出算法分析", Price = 1.80, PublicTime = new DateTime(2021, 12, 16) };
- Book book4 = new Book { AuthorName = "lty4", Tittle = "深入浅出MySql", Price = 1.80, PublicTime = new DateTime(2021, 12, 16) };
- Book book5 = new Book { AuthorName = "lty5", Tittle = "深入浅出计算机网络", Price = 1.80, PublicTime = new DateTime(2021, 12, 16) };
- //把Book加入到逻辑上的Book表中
- dbcontext.Book.Add(book1);
- dbcontext.Book.Add(book2);
- dbcontext.Book.Add(book3);
- dbcontext.Book.Add(book4);
- dbcontext.Book.Add(book5);
- //这会把逻辑上的数据库表,更新到真实的数据库中
- await dbcontext.SaveChangesAsync();
- #endregion
2、修改
对要修改的数据先查出来在进行修改 保存
- var data_Alter = dbcontext.Book.Single(b => b.Tittle == "深入浅出算法分析");
- data_Alter.AuthorName = "深入浅出算法分析的AuthorName";
- dbcontext.SaveChanges();
3、删除
- var data_Delete = dbcontext.Dogs.Single(b => b.Name == "HaSai");
- dbcontext.Remove(data_Delete);
- dbcontext.SaveChanges();
4、更新
- private async void UpdateData()
- {
- //需要先查询
- var books = codeFContext.Books.Where(x => x.Title == "追风筝的人");
- //再对查询到的数据进行修改
- foreach (var item in books)
- {
- item.Title = "放学后";
- }
- //再save更改
- await codeFContext.SaveChangesAsync();
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。