这里是写给我自己做记录的,不会写成一篇很好的博客,也不会置顶,如果有朋友看到了,而且觉得里面的内容不咋的,希望见谅哈!

关于这部分内容,这里推荐一篇总结的非常好的博客,如果你点击进来了,那么请略过下面的内容,直接点击这个链接,因为写的真的不错:https://www.cnblogs.com/gosky/p/5751815.html

  我个人还没有对EF相关的内容进行详细的整理,所以这篇随笔的参考意义不大,只是贴一些代码上去,以后有机会有时间,会对相关内容做一个总结。

使用EF操作数据库的详细步骤主要分为一下几步:

1.创建EF实体数据库模型:

在某个项目上点击右键 添加 ==》数据 ==》ADO.Net实体数据库模型 ==》然后按照提示去走;

2.实例化上下文

  首先找到需要实例化的上下文的名字,在ef实体里的这个文件里:

打开该文件后,代码如下:

红框处的名字就是该实体的上下文。

实例化上下文的具体做法如下:

FirstDBEntities1 db = new FirstDBEntities1();

3.使用上下文操作数据库 之 查询操作

(1)根据主键id获取某个表的数据

操作方法为:

UserInfo userInfo = new UserInfo();

userInfo  =  db.UserInfo.Find(id);

其中UserInfo是该数据表对应的实体类的类名,执行该操作后,即可获取主键id为某个数的那一行的数据,然后通过 userInfo.XXX 即可获去相应字段的值;

(2)获取某个数据表全部数据

操作方法为:

List<UserInfo>  list = new List<UserInfo>
list = db.UserInfo.ToList();

执行该操作后久会把该数据表中的所有数据都取出来,存放在一个List集合中;

(3)根据其他条件进行查询

var user = db.UserInfo.Where(u => u.userName == "AAA" );

这是使用lambda表达式进行查询,查询的结果是一个list集合,通过下面的方法可以遍历取出这些数据:

foreach(var item in user)
{
xxx = item.yyyy;
}

 4.使用上下文操作数据库 之 增

创建一个实体数据对象,并对其各个字段赋值,然后使用上下文执行增加操作,

UserInfo user = new UserInfo();
user.userName = "BBB";
user.passWord = "";
db.UserInfo.Add(user); db.SaveChanges();

需要注意的是,在执行完添加操作之后,需要执行 db.SaveChanges() 操作, 这句话的意思是,把我们修改的内容更新到数据库中。

5.使用长下文操作数据库 之 改

首先要指定你修改的某一行的id:

UserInfo user = new UserInfo();
user.UserId = ;

接下来对要修改的字段进行重新赋值:

user.userName = "CCC";
user.passWord = "";

然后执行修改操作:

db.Entry(user).State = EntityState.Modified;

最后将修改保存到数据库中

db.SaveChanges();

如果只修改单个属性,比如只修改userName,则写为:

UserInfo user = new UserInfo();
user.userId = ;
user.userName = "DDD";
db.Entry(user ).Property(u => u.userName).IsModified = true;
db.SaveChanges();

 6. 使用长下文操作数据库 之 删

UserInfo user = new UserInfo();
user.userId = ; db.Entry<UserInfo>(user).State = System.Data.Entity.EntityState.Deleted; db.SaveChanges();

好了,先简单写一下,只是草草记录,后续有时间会进行系统的归纳总结。

EF操作数据库的步骤和一些简单操作语句的更多相关文章

  1. DDL_操作数据库_创建&查询和DDL_操作数据库_修改&删除&使用

    DDL操作数据库.表 1.操作数据库:CRUD C(Create):创建 创建数据库: create database 数据库名称: 创建数据库判断不存在再创建 create database if ...

  2. jdbc操作数据库的步骤

    package com.jckb; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepare ...

  3. mysql数据库和数据表的简单操作

    一.数据库的增删改查 1.新建数据库 CREATE DATABASE 数据库名 charset utf8; 数据库名规则:可以由字母.数字.下划线.@.#.$ 区分大小写, 不能使用关键字如 crea ...

  4. Ruby操作数据库基本步骤

    1.rails g model university name:string 2.model has_many :colleges belongs_to :university has_one :us ...

  5. SQL server 从创建数据库到查询数据的简单操作

    目录. 创建数据库 创建表 插入数据 查询 1.创建数据库 --创建数据库 create database db_Product go --使用数据库use db_Productgo 2.创建表 -- ...

  6. JDBC操作数据库的步骤 ?

    注册数据库驱动. 建立数据库连接. 创建一个Statement. 执行SQL语句. 处理结果集. 关闭数据库连接.

  7. 阐述JDBC操作数据库的步骤

    1. 加载驱动. Class.forName("oracle.jdbc.driver.OracleDriver"); (注意:加载驱动在JDBC 4.0中是可以省略的,自动从类路径 ...

  8. ui自动化之selenium操作(二)定位元素-简单操作

    1. 将浏览器最大化 这里拿chrome举例,但是我在执行的时候一直报错,被坑了好久; 解决办法: 这是因为chromedriver是和chrome一一对应的,不兼容的版本就会报错: 所有chrome ...

  9. django操作数据库之查询F,Q操作 和 seach搜索功能

    # F 使用查询条件的值 # # from django.db.models import F # models.Tb1.objects.update(num=F('num')+1) # Q 构建搜索 ...

随机推荐

  1. HTTP Status 500 - Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

    今天整合ssm框架 时 遇到的问题 困扰我好长时间     原因就是  mapper文件 没有被加载进来 但是 为什么没有被加载进来呢  因为中间的配置文件出了一些问题 网上大多数说法是   在pom ...

  2. Java内存模型锦集

    [内存操作与内存屏障] 内存模型操作: lock(锁定) : 作用与主内存的变量, 它把一个变量标识为一条线程独占的状态 unlock(解锁) : 作用于主内存变量, 它把一个处于锁定状态的变量释放出 ...

  3. python 可迭代对象 迭代器 生成器总结

    可迭代对象 只要有魔法方法__iter__的就是可迭代对象  list和tuple和dict都是可迭代对象 迭代器 只要有魔法方法__iter__和__next__的就是可迭代对象 生成器 只要含有y ...

  4. Spark 异步Action

    异步不保序,但大作业执行时间后移. .set("spark.scheduler.mode", "FAIR") 公平调度,充分使用集群资源. Spark Doc ...

  5. nodejs内存溢出

    npm-v 报错,错误信息如下: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScri ...

  6. 性能测试学习 第八课--LR12中针对WebServices协议的三种脚本开发模式

    一,webservices协议简介 webservices是建立可交互操作的分布式应用程序的新平台,它通过一系列的标准和协议来保证程序之间的动态连接, 其中最基本的协议包括soap,wsdl,uddi ...

  7. MySQL 分区建索引

    200 ? "200px" : this.width)!important;} --> 介绍 mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张 ...

  8. [Swift]LeetCode79. 单词搜索 | Word Search

    Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...

  9. [Swift]LeetCode740. 删除与获得点数 | Delete and Earn

    Given an array nums of integers, you can perform operations on the array. In each operation, you pic ...

  10. [Swift]LeetCode1010. 总持续时间可被 60 整除的歌曲 | Pairs of Songs With Total Durations Divisible by 60

    In a list of songs, the i-th song has a duration of time[i] seconds. Return the number of pairs of s ...