EF增删改查基础
2024-10-19 06:17:44
#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;
最新文章
- 当div有边框图片的时候,怎么实现内部的p标签的水平和垂直居中
- poj1200-Crazy Search(hash入门经典)
- 我的ES6学习之路(一)
- Spring
- JDK中的native2ascii命令详解
- [resource]23个python的机器学习包
- What Can I Do With This Major?
- Page Cache buffer Cache
- java进阶计划
- python使用一个集合代替列表
- 左右 android AES 所述机器的一部分 javax.crypto.BadPaddingException: pad block corrupted
- BZOJ 1072 [SCOI2007]安排perm 如压力DP
- PIL Gif分割成多个图片
- 有效的XML: DTD(文档类型定义)介绍(转)
- CoreCLR文档翻译 - GC的设计
- xml-DTD相关
- Cosmos OpenSSD--greedy_ftl1.2.0(三)
- C# Post方式下,取得其它端传过来的数据
- JDK1.8HashMap源码解读
- Java编程思想 学习笔记3