欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用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类,有他完成对数据库的操作。

  1. 首先引入命名空间
using Demo2020060202.Models;
//using 解决方案名称+MOdels
  1. 在控制器中实例化DbContext子类
TestDB6Entities db = new TestDB6Entities();

3.查

  1. 根据ID查找
var classInfo = db.ClassInfos.Find(1);
  1. 查找全部
var classInfo = db.ClassInfos.ToList();
  1. 根据条件查询
var classinfo =db.ClassInfos.Where(p.字段 == 条件).ToList();

4.增

4.1增加单个

  1. 第一种方法
ClassInfo classInfo = new ClassInfo()
{
   Name="20202020",
   Remark="20202020班"
};
//新增
db.ClassInfos.Add(classInfo);
db.SaveChanges();
  1. 第二种方法
 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删除单个

  1. 第一种方法
//找到需要删除的数据
var classinfo = db.ClassInfos.Find(1);
//删除
db.ClassInfos.Remove(classinfo);
db.SaveChanges();
  1. 第二种方法
 //找到需要删除的数据
 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();
相关标签: MVC与EF框架 sql