使用EF框架对数据库进行增删改查
程序员文章站
2022-05-07 10:54:25
...
1.数据库
USE [TestDB6]
GO
/****** Object: Table [dbo].[ClassInfos] Script Date: 2020/6/2 19:02:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ClassInfos](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NULL,
[Term] [int] NULL,
[TeacherID] [int] NULL,
[Remark] [nvarchar](200) NULL,
CONSTRAINT [PK_ClassInfos] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[ClassInfos] WITH CHECK ADD CONSTRAINT [FK_ClassInfos_Teachers] FOREIGN KEY([TeacherID])
REFERENCES [dbo].[Teachers] ([ID])
GO
ALTER TABLE [dbo].[ClassInfos] CHECK CONSTRAINT [FK_ClassInfos_Teachers]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'学期:1:2019春 2:2019秋 3:2020春 4:2020秋' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ClassInfos', @level2type=N'COLUMN',@level2name=N'Term'
GO
2.实例化 DbContext的子类
DbContext类是EntityFramework (简称 EF)中的一个类,可以理解为一个数据库对象的实例。在 EF中,无需手动的拼接 SQL 语句对数据库进行增删改查,而是通过 DbContext 来进行相应操作。DbContext类是实体框架的重要组成部分。它是您的域或实体类与数据库之间的桥梁,DbContext是负责与数据交互作为对象的主要类。所以我们将实体赋值,然后把值和操作交给Dbcontext类,有他完成对数据库的操作。
- 首先引入命名空间
using Demo2020060202.Models;
//using 解决方案名称+MOdels
- 在控制器中实例化DbContext子类
TestDB6Entities db = new TestDB6Entities();
3.查
- 根据ID查找
var classInfo = db.ClassInfos.Find(1);
- 查找全部
var classInfo = db.ClassInfos.ToList();
- 根据条件查询
var classinfo =db.ClassInfos.Where(p.字段 == 条件).ToList();
4.增
4.1增加单个
- 第一种方法
ClassInfo classInfo = new ClassInfo()
{
Name="20202020",
Remark="20202020班"
};
//新增
db.ClassInfos.Add(classInfo);
db.SaveChanges();
- 第二种方法
ClassInfo classInfo = new ClassInfo()
{
Name="20202020",
Remark="20202020班"
};
//新增
db.Entry(classInfo).State = System.Data.Entity.EntityState.Added;
db.SaveChanges();
4.2 增加多个
List<ClassInfo> classInfos = new List<ClassInfo>()
{
new ClassInfo()
{
Name="20202020",
Remark="20202020班"
},
new ClassInfo()
{
Name="21212121",
Remark="21212121班"
}
};
db.ClassInfos.AddRange(classInfos);
db.SaveChanges();
5.删
5.1删除单个
- 第一种方法
//找到需要删除的数据
var classinfo = db.ClassInfos.Find(1);
//删除
db.ClassInfos.Remove(classinfo);
db.SaveChanges();
- 第二种方法
//找到需要删除的数据
var classinfo = db.ClassInfos.Find(1);
//删除
db.Entry(classinfo).State = System.Data.Entity.EntityState.Deleted;
db.SaveChanges();
5.2删除多个
//找到需要删除的数据
var classInfos = db.ClassInfos.ToList();
db.ClassInfos.RemoveRange(classInfos);
db.SaveChanges();
6.改
//找到需要修改的数据
var classinfo = db.ClassInfos.Find(1);
//修改Name
classinfo.Name = "123123";
//修改
db.Entry(classinfo).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
推荐阅读
-
java使用DOM对XML文档进行增删改查操作实例代码
-
java使用DOM对XML文档进行增删改查操作实例代码
-
AngularJS中如何使用$http对MongoLab数据表进行增删改查
-
可编辑树Ztree的使用(包括对后台数据库的增删改查)
-
Asp.net MVC4 使用EF实现数据库的增删改查
-
asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行
-
搭建MyBatis-Plus框架并进行数据库增删改查功能
-
scalikejdbc框架进行mysql数据库增删改查及事务创建
-
使用IDEA对Oracle数据库进行简单增删改查操作
-
Android数据库框架-xUtils使用(数据库映射(增删改查))