第一步:创建上下文对象

using(var db = new Entities())
{
//数据操作
}

新增

    UserInfo user = new UserInfo()
{
UserName = "zhangsan1",
UserPass = "123123"
};
db.UserInfo.Add(user);

删除

    user = new UserInfo()
{
UserID = 4, //根据主键删除
UserName = "zhangsan",
UserPass = "12312311111"
};
db.Entry<UserInfo>(user).State = System.Data.Entity.EntityState.Deleted;

说明:此例中虽然指定了UserName和UserPass属性值,但是EF执行的时候只会根据主键UserID生成查询条件,所以只需要制定UserID即可。

删除 方法2

    user = new UserInfo()
{
UserID = 13 //根据主键删除
};
//Attach的实体事先不能已经在内存中,否则上下文会追踪到两个相同键名的实体
db.UserInfo.Attach(user);//将对象添加到EF管理容器中 ObjectStateManager
db.UserInfo.Remove(user);//将对象包装类状态标识为删除

删除 先查询-再删除

    //先加载整个实体 再删除 执行了2次sql 效率略低
using (var db = new Entities())
{
var user = (from v in db.UserInfo
where v.UserID == 14
select v).Single();
db.UserInfo.Remove(user);
db.SaveChanges();
}

修改

    user = new UserInfo()
{
UserID = 12,
UserName = "zhangsan",
UserPass = "987654"
};
db.Entry<UserInfo>(user).State = System.Data.Entity.EntityState.Modified;

修改单个属性

    user = new UserInfo()
{
UserID = 12,
UserName = "zhangsan"
};
db.UserInfo.Attach(user);
db.Entry<UserInfo>(user).Property<string>(v => v.UserName).IsModified = true;

说明:将UserID=12的用户名称改为 zhangsan

修改单个实体 先查询-再修改

    using (var db = new Entities())
{
var user = (from v in db.UserInfo
where v.UserName == "zhangsan"
select v).Single();
user.UserPass = "123456";
db.SaveChanges();
}

说明:将用户名为 zhangsan的用户 密码修改为:123456

查询所有实体

    var users = db.UserInfo;
foreach (var v in users)
{
ObjectDumper.Write(v);//打印实体
}

查询单个实体 主键查询

    using (var db = new Entities())
{
var user = db.UserInfo.Find(12);
ObjectDumper.Write(user);
}

说明:查询UserID=12的用户

备注:所有增删改操作都需要调用 db.SaveChanges() 方法,才能更新到数据库。

完整案例:

using(var db = new Entities())
{
//新增
UserInfo user = new UserInfo()
{
UserName = "zhangsan1",
UserPass = "123123"
};
db.UserInfo.Add(user); //删除
user = new UserInfo()
{
UserID = 4, //根据主键删除
UserName = "zhangsan",
UserPass = "12312311111"
};
db.Entry<UserInfo>(user).State = System.Data.Entity.EntityState.Deleted; //删除 方法2
user = new UserInfo()
{
UserID = 13 //根据主键删除
};
//Attach的实体事先不能已经在内存中,否则上下文会追踪到两个相同键名的实体
db.UserInfo.Attach(user);//将对象添加到EF管理容器中 ObjectStateManager
db.UserInfo.Remove(user);//将对象包装类状态标识为删除 //删除单个实体
//先加载整个实体 再删除 执行了2次sql 效率略低
user = (from v in db.UserInfo
where v.UserID == 14
select v).Single();
db.UserInfo.Remove(user);
db.SaveChanges(); //修改
user = new UserInfo()
{
UserID = 12,
UserName = "zhangsan",
UserPass = "987654"
};
db.Entry<UserInfo>(user).State = System.Data.Entity.EntityState.Modified; //修改单个属性
db.UserInfo.Attach(user);
db.Entry<UserInfo>(user).Property<string>(v => v.UserName).IsModified = true; //修改单个实体
user = (from v in db.UserInfo
where v.UserName == "zhangsan"
select v).Single();
user.UserPass = "abcd";
db.SaveChanges(); //查询遍历
var users = db.UserInfo;
foreach (var v in users)
{
ObjectDumper.Write(v);
} //查询单个实体
user = db.UserInfo.Find(12);
ObjectDumper.Write(user); //保存更新到数据库
db.SaveChanges();
}

EF简单增删改查的更多相关文章

  1. ASP.NET MVC学习---(三)EF简单增删改查

    那么现在我们已经大概从本质上了解了ef 巴拉巴拉说了一大堆之后 总算要进入ef的正题了 总在口头说也太不行了是吧~ 没错,现在要用ef进行一些实际的操作 做什么呢? 就做一个入门级的增删改查操作吧 废 ...

  2. [EF]使用EF简单增删改查

    目录 认识EF 添加数据 删除数据 修改数据 查询数据 总结 认识EF ADO.NET Entity Framework 是微软以ADO.NET为基础所发展出来的对象关系对伊(O/R Mapping) ...

  3. 【EF学习笔记04】----------EF简单增删改查

    第一步:创建上下文对象 using(var db = new Entities()) { //数据操作 } 新增 UserInfo user = new UserInfo() { UserName = ...

  4. EF实现增删改查

    从来没想到过能在这个上面翻车,感慨自学没有培训来得系统啊,废话不多说 ORM:对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一 ...

  5. 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作

    专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...

  6. ASP.NET从零开始学习EF的增删改查

           ASP.NET从零开始学习EF的增删改查           最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...

  7. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)

    easyui datagrid 禁止选中行   没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...

  8. ado.net的简单数据库操作(三)——简单增删改查的实际应用

    果然,在犯困的时候就该写写博客,写博客就不困了,哈哈! 上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦. 实例描述:在数据 ...

  9. Redis:五种数据类型的简单增删改查

    Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" OK #查询ay_ke ...

随机推荐

  1. 本地连接mysql的url写法

    一.jdbc:mysql:///中三条斜杠(///) 第三个/代表什么? jdbc:mysql:///testdatabase等同于 jdbc:mysql://localhost:3306/testd ...

  2. Spring Boot源码(二):SPI去除web.xml

    SPI广泛用于dubbo,spring boot,spring cloud alibaba等 关于SPI,可见SPI-Service Provider Interface 继续上篇文章 上面三句代码的 ...

  3. 2020.02.01【NOIP提高组】模拟B 组总结反思——数列(sequence) 树 【2012东莞市选】时间流逝 挖掘机技术哪家强

    T1 数列(sequence) 比赛时 我自以为是地打了简简单单一个判断--- 之后 Waiting-- T2 2753. 树(tree) 比赛时 这题我居然比赛时也想了很久,可能是因为我太懒,我很早 ...

  4. sqli-labs11-17(手注+sqlmap)

    这几关涉及到的都是post型data处注入,和get型的差别就是注入点的测试处不一样,方法都是一样的 0x01 sqli-labs less-11 1.手工 由于是post型注入,那么我们不能在url ...

  5. P1041 传染病控制【暴搜】

    P1041 传染病控制 提交 10.78k 通过 3.74k 时间限制 1.00s 内存限制 125.00MB 题目提供者CCF_NOI 难度提高+/省选- 历史分数100 提交记录 查看题解 标签 ...

  6. AI 数学基础 : 熵

    什么是熵(entropy)? 1.1 熵的引入 事实上,熵的英文原文为entropy,最初由德国物理学家鲁道夫·克劳修斯提出,其表达式为: 它表示一个系系统在不受外部干扰时,其内部最稳定的状态.后来一 ...

  7. (一)Python模块化编程简介

    1 引言 众所周知,模块化编程具备很多优点,尤其在复杂项目上体现更为明显.Python模块化编程有助于开发者统筹兼顾和分工协作,并提升代码灵活性和可维护性,是编程开发者不可或缺的一项重要工具. 2 P ...

  8. 查找pod使用的物理目录位置

    例子:找出当前pod挂载的是哪个物理目录 # 先查看pod web-0 的yaml文件 # kubectl get pod web-0 -o yaml apiVersion: v1 kind: Pod ...

  9. 消息队列和Kafka

    ------20191211闪

  10. R语言函数化编程笔记2

    R语言函数化编程笔记2 我学过很多的编程语言,可以我写的代码很啰嗦,一定是我太懒了.或许是基础不牢地动山摇 1.为什么要学函数 函数可以简化编程语言,减少重复代码或者说面向对象的作用 2.函数 2.1 ...