EF 简单 增删改查

一、新建Models 中实体类

在类中添加特性,添加特性之前需要引用命名空间

 

1、类的上边 [Table("表名称")]​2、主键 [Key]

[Table("Student")]
  public class Student
  {
      [Key]
      public int SId { get; set; }
      [Required(ErrorMessage ="请输入姓名")]
      [StringLength(50)]
      public string SName { get; set; }
  }

二、新建Dal文件夹

1、右键->新建项-->左边点数据,右边点 ADO.NET 实体数据模型-->选择空Code First 模型

2、在实体数据模型当中 添加 数据集属性

public DbSet<Model实体类> 属性名 { get; set; }--格式
public DbSet<Student> Students { get; set; }--例

三、更改web.config 数据库连接字符串

1、更改connectionString属性名 data source 值 改成 .或数据库实例名称

2、更改connectionString属性名 initial catalog 值 改成 自定义数据库名称

四、完成数据迁移命令->菜单点->工具->NuGet包管理器->程序包管理器控制台

 

1、Enable-Migrations 启动迁移(将自动生成的Configuration文件中 AutomaticMigrationsEnabled =true)允许自动迁移

2、add-Migration init (init 名称自定义)

3、update-database 完成更数据库 迁移操作

五. 完成简单的增删改查

1.添加

public int Add(Student stu)
      {
          db.Students.Add(stu); // 更改状态为“添加”
          return db.SaveChanges(); //受影响行数
      }

 

2.删除

public int Del(int id)
      {
          //先通过id 进行查询 实体
          var item = db.Students.Find(id);
          //再删除 (更改状态)
          db.Students.Remove(item);
          //操作数据库
          return db.SaveChanges();
      }

3.修改

public int Edit(Student stu)
      {
          db.Entry(stu).State = System.Data.Entity.EntityState.Modified;
          return db.SaveChanges();
      }

4.显示

public List<Student> GetAll()
      {
          return db.Students.ToList();
      }

5.反填

public Student FindById(int id)
      {
          return db.Students.Find(id);
      }

6.带异常处理的添加

日志:

1、文本类型的-将当前时间+方法名称+参数+错误信息 打印到文本当中 2、数据表类的-将当前时间+方法名称+参数+错误信息 添加到数据表当中

throw :抛出异常 返回调用的那一节错误

public int AddStudent(Student stu)
      {
          try
          {
              db.Students.Add(stu);
              var flag = db.SaveChanges();
              //打印日志
              return flag;
          }
          catch (Exception)
          {
          //日志 - 内容
              //什么是日志?
              //1、文本类型的-将当前时间+方法名称+参数+错误信息 打印到文本当中
              //2、数据表类的-将当前时间+方法名称+参数+错误信息 添加到数据表当中
              //当前方法名称+参数+时间
              //作用:发生错误信息时,定位
              throw; //抛出异常 返回调用的那一节错误
          }
      }