【EF】-EntityFramework基础认识

1、什么是EF?

EF是一种ORM(Object-relational mapping)框架,以ADO.NET为基础发展出来的对象关系映射解决方案,也就是对象模型和关系模型数据库的数据结构之间的相互转换;ORM负责把对象模型映射到基于SQL的关系模型数据库结构中,这样在具体操作实体对象的时候,就不需要再去和复杂的SQL语句打交道了,只需要简单的操作实体对象的属性和方法,即用操作对象的方式进行数据库操作;

在这里插入图片描述
2、EF三种模式?

使用EF进行开发的时候需要建两个东西:数据库、模型类,而EF的三种模式也是根据这两种创建的先后顺序产生的;

DataBaseFirst(数据库优先):以数据库设计为前提,根据数据库自动生成实体模型,驱动整个开发过程;先自己创建数据库表,然后EF自动生成EDM文件,EDM文件生成模型类;

ModelFirst(模型优先):先创建EDM文件,EDM文件自动生成模型类和数据库类;与DataBaseFirst是一个互逆的过程,都是输出数据库和实体模型;

3、EF原理

1. EF会自动把Where()、OrderBy()、 Select()等这些编译 成“表达式树(Expression Tree)",然后会把表达式树翻译成SQL语句去执行;

2. 如何查看真正执行的SQL是什么?

DBContext有一个Database属性,其中的Log属性,是Action委托类型,可以指向一个voidA(strings)方法,其中的参数就是执行的SQL语句,每次EF执行SQL语句时候都会执行Log,就可以知道执行了什么SQL;

EF中查询是“延迟执行的”,在foreach之后执行,

//实例化数据库上下文
using (var db = new Model1())
{
    db.Database.Log = (sql) =>
    {
        Console.WriteLine("********Log********" + sql);
    };
    //普通查询
    var result = (from u in db.user
                    where u.Id > 0
                    select u);
    Console.WriteLine("准备开始foreach");
    foreach (var users in result)
    {
        Console.WriteLine("用户ID:" + users.Id + "  姓名:" + users.username + "  密码:" + users.password + "  邮箱:" + users.email);
    }

    Console.ReadKey();
}

在这里插入图片描述

4、EF与MySQL

EF与SQLSever一起使用的过程配置相对比较平和,可与MySQL一起的时候就会出现一些小插曲,这个过程中难免会走一些坑,其实都是版本不兼容惹的祸,所以行动之前查看下自己电脑的装备也是十分必要的,详细过程中的坑如何跳过。Visual Studio2015 、2017中如何支持MYSQL数据源

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值