当前位置:   article > 正文

EFCore

efcore

一、EFCore介绍

Entity Framework Core轻量化、可扩展、开源和跨平台版的常用Entity Framework数据访问技术。
EF Core可用作对象关系映射程序 (O/RM),这可以实现以下两点:

  • 使 .NET 开发人员能够使用 .NET 对象处理数据库。
  • 无需再像通常那样编写大部分数据访问代码。
    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、添加数据

  1. //dbcontext 逻辑上的数据库,并不是真实的
  2. Book book1 = new Book { AuthorName = "lty1", Tittle = "深入浅出EFCore", Price = 1.80, PublicTime = new DateTime(2021, 12, 16) };
  3. Book book2 = new Book { AuthorName = "lty2", Tittle = "深入浅出数据结构", Price = 1.80, PublicTime = new DateTime(2021, 12, 16) };
  4. Book book3 = new Book { AuthorName = "lty3", Tittle = "深入浅出算法分析", Price = 1.80, PublicTime = new DateTime(2021, 12, 16) };
  5. Book book4 = new Book { AuthorName = "lty4", Tittle = "深入浅出MySql", Price = 1.80, PublicTime = new DateTime(2021, 12, 16) };
  6. Book book5 = new Book { AuthorName = "lty5", Tittle = "深入浅出计算机网络", Price = 1.80, PublicTime = new DateTime(2021, 12, 16) };
  7. //把Book加入到逻辑上的Book表中
  8. dbcontext.Book.Add(book1);
  9. dbcontext.Book.Add(book2);
  10. dbcontext.Book.Add(book3);
  11. dbcontext.Book.Add(book4);
  12. dbcontext.Book.Add(book5);
  13. //这会把逻辑上的数据库表,更新到真实的数据库中
  14. await dbcontext.SaveChangesAsync();
  15. #endregion

 2、修改

对要修改的数据先查出来在进行修改 保存

  1. var data_Alter = dbcontext.Book.Single(b => b.Tittle == "深入浅出算法分析");
  2. data_Alter.AuthorName = "深入浅出算法分析的AuthorName";
  3. dbcontext.SaveChanges();

3、删除

  1. var data_Delete = dbcontext.Dogs.Single(b => b.Name == "HaSai");
  2. dbcontext.Remove(data_Delete);
  3. dbcontext.SaveChanges();

 4、更新

  1. private async void UpdateData()
  2. {
  3. //需要先查询
  4. var books = codeFContext.Books.Where(x => x.Title == "追风筝的人");
  5. //再对查询到的数据进行修改
  6. foreach (var item in books)
  7. {
  8. item.Title = "放学后";
  9. }
  10. //再save更改
  11. await codeFContext.SaveChangesAsync();
  12. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/666157
推荐阅读
相关标签
  

闽ICP备14008679号