随笔分类 -  EntityFramework

摘要:简单介绍:Enumerable 和 Queryable 他们都是静态类,位于命名控件 System.Linq下,分别为IEnumerable<T>和IQueryable<T>提供方法扩展。关于扩展方法请查看:.NET扩展方法一章 Enumerable 为 IEnumerable<T> 泛型接口提供扩 阅读全文
posted @ 2016-08-10 17:18 思如雨 阅读(651) 评论(0) 推荐(0)
摘要:先来看一下我们的表结构: 首先毫无疑问的要创建我们的上下文对象: Average 平均值: Max 最大值: Min 最小值: Sum 求和: Count 数量: 执行结果: Contains 包含: Distinct 去重: 执行结果: Take 取出指定个数 Skip 跳过指定个数 结合使用 S 阅读全文
posted @ 2016-08-10 15:38 思如雨 阅读(1376) 评论(0) 推荐(0)
摘要:主从表 级联新增 追踪SQL语句: 执行结果: 说明:因为是主从表关系,所以讲主表标记为Added状态时,子表中的实体也会被标记。此处执行了3条SQL语句,分别新增班级和学生。 主从表 级联删除 先来看一下数据,两张表是外键关系。 执行结果: 说明:因为 班级表Classes 和 学生表 Stude 阅读全文
posted @ 2016-08-09 21:56 思如雨 阅读(2571) 评论(0) 推荐(0)
摘要:讲解之前,先来看一下我们的数据库结构:班级表 学生表 如上图,实体状态由EntityState枚举定义:Detached(未跟踪)、Unchanged(未改变)、Added(已添加)、Deleted(已删除)、Modified(已修改) 查看实体状态 执行结果: 说明:输出结果 Unchanged 阅读全文
posted @ 2016-08-09 17:48 思如雨 阅读(2232) 评论(0) 推荐(1)
摘要:显式加载 讲解之前,先来看一下我们的数据库结构:班级表 学生表 加载从表集合类型 追踪SQL语句 说明:此处执行了2条SQL,先查询班级 再查询该班级学生 加载集合使用Collection方法,Entry的参数为单个实体 执行结果: 加载关联表单个实体 追踪SQL语句 说明:此处执行2条SQL,先查 阅读全文
posted @ 2016-08-09 12:04 思如雨 阅读(723) 评论(0) 推荐(1)
摘要:讲解之前,先来看一下我们的数据库结构:班级表 学生表 贪婪加载 追踪SQL语句 说明:此处根据条件查询,执行了一条SQL,一次性加载班级和该班级的所有学生 该SQL语句执行结果如下: 遍历所有班级和学生: 同样只执行一条SQL语句,结果如下: 阅读全文
posted @ 2016-08-09 11:41 思如雨 阅读(648) 评论(0) 推荐(1)
摘要:讲解之前,先来看一下我们的数据库结构:班级表 学生表 延迟加载 追踪SQL语句: 说明:主表使用.运算符调用从表都是延迟加载 导航属性需要设置为(virtual)此处执行了两句SQL 先查询班级表->再查询学生表 不恰当的使用延迟加载会发送很多多余的sql 演示程序:遍历所有班级和学生 追踪SQL语 阅读全文
posted @ 2016-08-09 11:23 思如雨 阅读(677) 评论(0) 推荐(1)
摘要:SingleOrDefault实验 说明:我们添加一个班级“英语10501”,并没有调用SaveChanges方法更新到数据库中。使用SingleOrDefault方法查询刚添加的班级。 SQL语句追踪:只执行了一条查询语句,并未执行新增,说明数据存在于内存之中 执行结果: 结论:Single、Fi 阅读全文
posted @ 2016-08-09 10:45 思如雨 阅读(875) 评论(0) 推荐(0)
摘要:遍历所有实体 说明:打印所有学生的姓名 根据条件查询 执行结果: 此处注意:使用linq和lamba时,变量一定要提前转存,不能在linq内部使用C#函数。 错误的写法: 这样写直接就会报错: 按照生日排序 升序排列(默认) 降序:descending 查询单个实体 Find方法 说明:根据主键查询 阅读全文
posted @ 2016-08-09 10:14 思如雨 阅读(2016) 评论(0) 推荐(2)
摘要:第一步:创建上下文对象 新增 删除 说明:此例中虽然指定了UserName和UserPass属性值,但是EF执行的时候只会根据主键UserID生成查询条件,所以只需要制定UserID即可。 删除 方法2 删除 先查询-再删除 修改 修改单个属性 说明:将UserID=12的用户名称改为 zhangs 阅读全文
posted @ 2016-08-09 09:28 思如雨 阅读(18100) 评论(5) 推荐(21)
摘要:在EF中使用原生SQL,首先要创建上下文对象 新增 参数化新增 删除 参数化删除 修改 查询多条记录 总结:操作方式与ADO.NET类似,EF框架自动为我们封装了数据库链接和查询对象。 完整案例: 阅读全文
posted @ 2016-08-09 09:02 思如雨 阅读(3821) 评论(0) 推荐(3)
摘要:方法一:SQL Profile 这个工具只有sql标准版(standard) 及以上版本才有,我装的是SqlServer2012 Express,所以采用方法2。 方法二:EntityFramework.Profiler 下载:EntityFramework.Profiler 工具 ,我用的是Ent 阅读全文
posted @ 2016-08-09 08:45 思如雨 阅读(1334) 评论(0) 推荐(0)