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、添加数据

     //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();
 
        }

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值