ASP.NET Entity Framework(EF)中基本增删改查的各种写法中基本增删改查的各种写法
和详细说明和详细说明
前言前言
在以前学习和使用在以前学习和使用WinForm、、ASP.NET WebForm、三层架构的时候、三层架构的时候,对于数据访问的实现,无论是什么逻辑,简单还是复对于数据访问的实现,无论是什么逻辑,简单还是复
杂,无论是执行杂,无论是执行SQL语句还是调用存储过程都要用到语句还是调用存储过程都要用到ADO.NET技术,通过封装好的技术,通过封装好的SQLhelper类传入类传入SQL语句和语句和
SqlParameter参数来操作数据库,使用起来还是有点麻烦呐参数来操作数据库,使用起来还是有点麻烦呐~~~
随着随着.Net学习的不断深入,学习过学习的不断深入,学习过ASP.NET MVC知识体系时才逐渐开始了解和使用微软知识体系时才逐渐开始了解和使用微软ORM系列的系列的Entity Framework框框
架,通过使用架,通过使用EF可以方便快捷的操作数据库。我一共学习和使用了三种模式的可以方便快捷的操作数据库。我一共学习和使用了三种模式的EF(DBFirst[数据库优先数据库优先]、、ModelFirst[模型优模型优
先先]、、CodeFirst[代码优先代码优先]),最初学习时从,最初学习时从ADO.NET向向EF的转变过程也不是很轻松,这里对的转变过程也不是很轻松,这里对EF的各种增删改查方法做一次系的各种增删改查方法做一次系
统的总结和巩固,方便自己以后温故知新,也可以帮助小白快速入门。统的总结和巩固,方便自己以后温故知新,也可以帮助小白快速入门。
这里使用这里使用DBFirst EF 6.0对一张表进行描述对一张表进行描述(#^.^#)
EF上下文对象上下文对象:
表中对应字段表中对应字段:(我用了一个十几年前的商品数据库(我用了一个十几年前的商品数据库,里面的字段名都是拼音缩写里面的字段名都是拼音缩写,不要效仿前辈们的陋习不要效仿前辈们的陋习O(∩_∩)O哈哈哈哈~))
一、查询一、查询
EF中我们可以使用三种方式进行查询操作中我们可以使用三种方式进行查询操作:Linq语句、语句、Linq方法和方法和SQL语句语句,这三种方法我会逐一进行说明。这三种方法我会逐一进行说明。
①查询全表数据查询全表数据
这里为了查看结果方便这里为了查看结果方便,都使用都使用ToList()结束了延迟加载。结束了延迟加载。
1.方法一方法一:Linq方法方法
var list = entities.T_Spb.Select(s=>s).ToList();
var list = entities.T_Spb.ToList();
2.方法二方法二:Linq语句语句
var list = (from item in entities.T_Spb
select item).ToList();
3.方法三方法三:SQL语句语句
var list = entities.T_Spb.SqlQuery("select * from T_Spb").ToList();
var list = entities.Database.SqlQuery("select * from T_Spb").ToList();
注注:三者种方法结果相同三者种方法结果相同,但是但是ToList()之前的返回值类型是不一样的。方法一、方法二之前的返回值类型是不一样的。方法一、方法二(使用使用Linq)返回值类型为返回值类型为
IQueryable,方法三中,方法三中DbSet.SqlQuery()返回值类型为返回值类型为DbSqlQuery,,database.SqlQuery()返回值类型为返回值类型为
DbRawSqlQuery。。
②查询单个数据查询单个数据
查询查询id为为30的商品的商品
特殊特殊:Find方法根据要查找的实体的主键值查对象。若通过主键查,用方法根据要查找的实体的主键值查对象。若通过主键查,用Find()比较方便。比较方便。
var model = entities.T_Spb.Find(30);
1.方法一方法一:Linq方法方法