.Net EF框架的增删改查
创建上下文对象:
WordBoradEntities db = new WordBoradEntities();
添加:
//1.1创建实体对象
User uObj = new User()
{
uName = "刘德华",aa
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();
查询:
List<User> list = db.Users.Where(u => u.uName == "刘德华").ToList();
连接查询:linq连接查询:
from a in db.User join b in db. UsersAddresses on a.Id equals b.udid
EF连接查询:
IQueryable<UsersAddress> addrs = db.User.Include("UsersAddresses").Where(a => a.Id == );
另一种连接查询:
var list=db.User.Join(db. UsersAddresses,c=>c.Id,g=>g.udid,(c,g)=>new{Name=c.Name,GroupName=g.GroupName});
删除:EF中实现删除有三种方式
注:版本一、二都是根据主键删除,版本三是根据任意条件到数据库查询然后再根据查询的结果进行删除,实际上版本三也是根据查询出来的结果中的主键进行删除。
版本一:根据主键删除
//实例化一个Users对象,并指定Id的值
Users user = new Users() { Id = };
//将user附加到上下文对象中,并获得EF容器的管理对象
var entry = db.Entry<User>(user);或者 var entry=db.Entry(user);
//设置该对象的状态为删除
entry.State = EntityState.Deleted;
//保存修改
db.SaveChanges();
Console.WriteLine("删除成功!");
版本二:根据主键删除
//实例化一个Users对象,并指定Id的值
Users user = new Users() { Id = };
//将user附加到上下文对象中
db.Users.Attach(user);
//删除user对象
Db.Users.Remove(user);
//保存修改
db.SaveChanges();
Console.WriteLine("删除成功!");
版本三:根据条件先查询出来然后再删除
var list= db.Users.Where(u => u.Name ==”张三”);
if(list!=null&&list.Any())
{
Foreach(User item in list)
{
db.User.Remove(item);
}
}
db.SaveChanges();
修改:
.官方推荐的修改方式(先查询,再修改)
//将Id为2的Users数据取出
var user = db.Users.Where(u => u.Id == ).FirstOrDefault();
Console.WriteLine("修改之前:" + user.UserName);
//修改UserName属性
user.UserName = "";
//保存修改
db.SaveChanges();
Console.WriteLine("修改之后:" + user.UserName);
.自己优化的修改方式
//1.创建出一个要修改的对象
User use = new User() { uId = ,uName="小白~~~"};
//2.将对象加入 EF容器,并获取当前实体对象的状态管理对象
DbEntityEntry<User> entry = db.Entry<User>(user);
//3.设置该对象为被修改过
entry.State = System.Data.EntityState.Unchanged;
//4.设置该对象的 uName属性为修改状态,同时 entry.State 被修改为 Modified 状态
entry.Property("uName").IsModified = true;
//5.关闭EF实体合法性检查(如果创建出来的要修改的数据有的字段没有赋值则关闭实体合法性检查,如果所有字段都赋值了则不用关闭EF实体合法性检查)
db.Configuration.ValidateOnSaveEnabled = false;
//6.重新保存到数据库 -- ef 上下文会根据实体对象的状态,根据 entry.State =Modified 的值生成对应的 update sql 语句.
db.SaveChanges();
Console.WriteLine("修改成功:");
.Net EF框架的增删改查的更多相关文章
- Entity - 使用EF框架进行增删改查 - 模型先行
模型先行:先创建数据库实体模型,然后再进行数据库的增删改查. 基本步骤是不变的,可参照 <Entity - 使用EF框架进行增删改查 - 数据库先行> 其中的不同是,在创建数据库实体模型的 ...
- VS2012里面使用EF框架的增删改查和分页的方法
public class BaseRepository<T> where T : class { //实例化EF框架 DataModelContainer ...
- Entity - 使用EF框架进行增删改查 - 数据库先行
数据库先行:先创建数据库,然后进行增删查该操作. 要操作的表结构(表名:Tb_Category): 创建一个控制台程序: 添加一个ADO.NET实体数据模型: 1.对控制台程序右键 2.选择ADO.N ...
- EF框架实增删改查
数据库链接配置: <connectionStrings> <add name="XxzxWorkEntities" connectionString=" ...
- .net EF框架-实现增删改查
声明一个EF上下文对象 Model dbContext = new Model(); 添加操作(向表中插入一条数据) //声明一个表的实体 Contact contact = new Contact( ...
- .NET EF 框架-实现增删改查
声明一个EF上下文对象 Model dbContext=new Model(); 添加操作(向表中插入一条数据) //声明一个表的实体 Contact contact =new Contact(); ...
- tp框架的增删改查
首先,我们来看一下tp框架里面的查询方法: 查询有很多种,代码如下: <?php namespace Admin\Controller; use Think\Controller; class ...
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- Yii2.0高级框架数据库增删改查的一些操作
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
随机推荐
- Centos更换yum源
Centos更换yum源 步骤如下: 备份原始源 cd /etc/yum.repos.d/ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/ ...
- BZOJ 4089:[Sdoi2015]graft(SDOI 2015 Round 2 Day 2)
别人家的神选系列,我只会做这道题QAQ 题目描述: 给定一颗树,加上k条边,将n个点染色,相邻两点不同,记颜色为i的又ti个,求$$\frac{\sum_{i=1}^{n} \frac{ti}{i}} ...
- 2013~2014年度 NOIP~GDOI总结
滚回去撸一年中考撸完之后就迎来了NOIP2013(话说初赛差点被坑了有木有= =)想想当年10月还是那样的天真的去了广州,结果就被虐成翔的回来了= =只做了三道签到题的渣渣就是弱= =DAY1T2死活 ...
- 简单说说Markdown语法
# 简单说说 MarkDown 语法 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr ...
- ios常用资源网址链接
M了个J博客 http://www.cnblogs.com/mjios/tag/objective-c/ Cocoa China http://www.cocoachina.com git网 ht ...
- VUE2.0实现购物车和地址选配功能学习第五节
第五节 单件商品金额计算和单选全选功能 1.vue精髓在于操作data模型来改变dom,渲染页面,而不是直接去改变dom 2.加减改变总金额功能: html:<div class="c ...
- Ubuntu下安装Redis并实现远程访问
之前的一篇随笔写到Redis在Windows下的安装,但目前好多大数据处理的服务是在Linux上的,所以想以Redis为例并实现在Windows上利用C#代码远程访问. 以在Ubuntu下为例,步骤如 ...
- maven springmvc启动问题
1.环境 SpringMVC + Maven + mybatis 2.报错提示 严重: Error configuring application listener of class org.spri ...
- 关于利用input的file属性在页面添加图片的问题
在页面添加图片涉及到兼容的问题怎么解决兼容问题呢?请看下面分析: 在IE浏览器上面我们能直接通过获取其input的value值来获取其图片的路径. 在火狐和谷歌需要用createObjectURL(( ...
- 1083: [SCOI2005]繁忙的都市
1083: [SCOI2005]繁忙的都市 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1319 Solved: 878[Submit][Stat ...