EF增删改查基础
#region 1.0 新增 -void Add()
/// <summary>
/// 1.0 新增
/// </summary>
static void Add()
{
//1.1创建实体对象
User uObj = new User()
{
uName = "刘德华",
uLoginName = "aaa",
uPwd = "asdfasdfasdfsadf",
uIsDel = false,
uAddtime = DateTime.Now
};
//1.2通过EF新增到数据库
//1.2.1将对象 加入到 数据上下文 的 User集合中
db.Users.Add(uObj);
//1.2.2调用数据上下文 的 保存方法,将 对象 存数数据库
db.SaveChanges();
Console.WriteLine("保存成功~~!");
}
#endregion #region 2.0 简单查询 -void Query()
/// <summary>
/// 2.0 简单查询
/// </summary>
static void Query()
{
List<User> list = db.Users.Where(u => u.uName == "刘德华").ToList();
list.ForEach(u => Console.WriteLine(u.ToString()));
}
#endregion #region 3.0 官方推荐的 修改方式(先查询,再修改)
/// <summary>
/// 3.0 官方推荐的 修改方式(先查询,再修改)
/// </summary>
static void Edit()
{
//1.查询出一个 要修改的对象
User usr = db.Users.Where(u => u.uId == ).FirstOrDefault();
Console.WriteLine("修改前:" + usr.ToString());
//2.修改内容
usr.uName = "刘德华";
usr.uLoginName = "liudehua";
//3.重新保存到数据库
db.SaveChanges();
Console.WriteLine("修改成功:");
Console.WriteLine(usr.ToString());
}
#endregion #region 4.0 删除 -void Delete()
/// <summary>
/// 4.0 删除
/// </summary>
static void Delete()
{
//4.1创建要删除的 对象
User u = new User() { uId = };
//4.2附加到 EF中,Remove前必须Attach
db.Users.Attach(u);
//4.3标记为删除
db.Users.Remove(u);
//4.4执行删除sql
db.SaveChanges();
Console.WriteLine("删除成功~~~");
}
#endregion
重写实体类ToString方法:
public partial class User
{
public override string ToString()
{
return this.uId + "," + this.uName + "," + this.uLoginName + "," + this.uPwd;
}
}
二、
//1.添加(增)
EFDBEntities entity = new EFDBEntities();
Users users = new Users() { username = "aaa", password = "" };
entity.Entry(users).State = EntityState.Added;
entity.SaveChanges();
//2.删除(删)
EFDBEntities entity = new EFDBEntities();
Users users = new Users() { id = };
entity.Entry(users).State = EntityState.Deleted;
entity.SaveChanges();
//3.修改(改)
EFDBEntities entity = new EFDBEntities();
Users users = new Users() { id = , username = "rrr", password = "" };
entity.Entry(users).State = EntityState.Modified;
entity.SaveChanges();
//4.查询(查)
//获取所有数据
var list = entity.Users;
foreach (var item in list)
{
Console.WriteLine(item.id + "---" + item.username + "---" + item.password);
}
//第一种方法,查询id=1的数据
IQueryable<Users> list1 = from u in entity.Users
where u.id ==
select u;
//第二种方法,查询id=1的数据
IQueryable<Users> list2 = entity.Users.Where(i => i.id == );
//查询第一条数据
Users us = entity.Users.FirstOrDefault();
//遍历
foreach (var item in list1)
{
Console.WriteLine(item.id + "---" + item.username + "---" + item.password);
}
总结:
static TextEntities db = new TextEntities();
1.添加:
Users user = new Users() { Id = 5, Name = "ppp", Pwd = "mmm", Gender = true, PowerId = 5 };
db.Users.Add(user); =======>这条语句等价于 db.Entry(user).State = EntityState.Added;
2.删除:
Users user = new Users() { Id = 5 };
db.Users.Attach(user);
db.Users.Remove(user);=======>这两条语句等价于 db.Entry(user).State = EntityState.Deleted;
EF增删改查基础的更多相关文章
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码 上一讲我们创建了一系列的解决方案,我们通过一个例子来看看层与层之间的关系 ...
- 分享一个自己写的MVC+EF “增删改查” 无刷新分页程序
分享一个自己写的MVC+EF “增删改查” 无刷新分页程序 一.项目之前得添加几个组件artDialog.MVCPager.kindeditor-4.0.先上几个效果图. 1.首先建立一个数 ...
- WPF MVVM+EF增删改查 简单示例(二) 1对1 映射
WPF MVVM+EF增删改查 简单示例(一)实现了对学生信息的管理. 现在需求发生变更,在录入学生资料的时候同时需要录入学生的图片信息,并且一名学生只能有一张图片资料.并可对学生的图片资料进行更新. ...
- EF增删改查的优化
在EF的上一篇博客中已经对它的增删改查有了一个简单的了解.当中的改动过程是先要把要改动的内容查出来然后再进行改动.保存.它详细的过程是这种 首先当在运行查询语句的时候"EF数据上下文&quo ...
- C# EF增删改查
1.增 //1.创建一个EF数据上下文对象 MyDBEntities context=new MyDBEntities(); //2.将要添加的数据,封装成对象 Users user = new Us ...
- MVC3.0 EF增删改查的封装类
本人亲身使用EF CodeFirst,因为增删改查都是使用EF内置的一些方法,我想把它封装到一个类调用就行了.结合网上的资料和自己的整理,若有不对的地方望斧正,感激不尽.直接上代码吧.我就用新闻的增删 ...
- .net xml 增删改查基础复习及干货分享
今天做做项目时,有一个需求需要用到一些固定的文本数据,觉得将这些需要存储的信息直接写在代码里很不友好,放在数据库中存储又觉得不够方便,自然就想到了使用xml来进行操作,我平常在项目中其实用到xml的机 ...
- EF学习笔记-1 EF增删改查
首次接触Entity FrameWork,就感觉非常棒.它节省了我们以前写SQL语句的过程,同时也让我们更加的理解面向对象的编程思想.最近学习了EF的增删改查的过程,下面给大家分享使用EF对增删改查时 ...
- [Android] SQLite数据库之增删改查基础操作
在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Un ...
随机推荐
- debian8 配置使用 nfs
操作过的步骤: 1.dpkg-reconfigre rpcbind. 2.在终端上退出要挂载的目录. 错误:mount -t nfs 172.16.0.121:/home/junda /mnt,出现以 ...
- [codeforces 317]A. Perfect Pair
[codeforces 317]A. Perfect Pair 试题描述 Let us call a pair of integer numbers m-perfect, if at least on ...
- jquery常用
获取元素宽度 .innerWidth() // 包含padding .outerWidth() // 包含padding, border .outerWidth(true)//包含padding, b ...
- c语言数据问题
变量都有作用域,链接属性,和存储类型3个属性,这三个属性决定了变量的作用域和生存期的问题 在c语言中包含4中类型, 整形 浮点型 指针 聚合类型(数组,结构体等) ------------------ ...
- django的跨站请求访问
一.简介 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成.而对于django中设置防跨站请求伪造功 ...
- 7.2---蚂蚁相遇问题(CC150)
public class Ants { public double antsCollision(int n) { // write code here return (1 - Math.pow(0.5 ...
- SQL Server OBJECT_ID() 函数
OBJECT_ID 返回架构范围内对象的数据库对象标识号. 重要提示 使用 OBJECT_ID 不能查询非架构范围内的对象(如 DDL 触发器).对于在 sys.objects 目录视图中找不到的对象 ...
- centos vim配置高亮语法和格式化粘贴
centos vim配置高亮语法和格式化粘贴 设置vim别名和高亮grep词语 echo -e "\nalias vi=vim\nalias grep='grep --color'\n&qu ...
- 【转】.so兼容32位和64位
本文转自:http://blog.csdn.net/fwt336/article/details/51700300 安卓的兼容性是一个很令人头疼的问题,这几天又遇到了,还好还是解决了. 我遇到的问题是 ...
- Log4perl 的使用
Perl 使用Log4perl 首先下载log4 module : http://search.cpan.org/CPAN/authors/id/M/MS/MSCHILLI/Log-Log4perl- ...