entity framework 新增,更新,事务
protected void Button1_Click(object sender, EventArgs e)
{
yyEntities _db;
_db = new yyEntities();
test t = new test();
t.testName = this.TextBox1.Text;
t.testCon = this.TextBox2.Text;
_db.AddObject("test", t);
_db.SaveChanges();
//using (var edm = new yyEntities())
//{
// test c = new test { testName = "c2", testCon = "成都市2" };
// edm.AddObject("test", c);
// int result = edm.SaveChanges();
//}
}
其中,在代码中,需要注意的是:AddObject方法中参数“entitySetName ”就是指对应实体名称,应该是:“Customers”,而不是“NorthwindEntities.Customers”;
l 更新:
using (var edm = new NorthwindEntities())
{
Customers addc = edm.Customers.FirstOrDefault(cc => cc.CustomerID == "c2");
addc.City = "CD";
addc.ContactName = "cnblogs";
addc.Country = "CN";
int result = edm.SaveChanges();
Assert.AreEqual (result, 1);
Customers updatec = edm.Customers.FirstOrDefault(cc => cc.CustomerID == "c2");
Console.WriteLine("CustomerId={0},City={1}", updatec.CustomerID, updatec.City);
}
其中,需要注意的是:不能去更新主键,否则会报“System.InvalidOperationException : 属性“xxx”是对象的键信息的一部分,不能修改。”
l 删除:
实例代码如下:
using (var edm = new NorthwindEntities())
{
Customers deletec = edm.Customers.FirstOrDefault(cc => cc.CustomerID == "c2");
edm.DeleteObject(deletec);
int result = edm.SaveChanges();
Assert.AreEqual (result, 1);
Customers c = edm.Customers.FirstOrDefault(cc => cc.CustomerID == "c2");
Assert.AreEqual (c, null );
}
l 事务:
实例代码如下:
NorthwindEntities edm = null ;
System.Data.Common.DbTransaction tran = null ;
try
{
edm = new NorthwindEntities();
edm.Connection.Open();
tran = edm.Connection.BeginTransaction();
Customers cst = edm.Customers.FirstOrDefault(cc => cc.CustomerID == "c#");
cst.Country = "CN";
cst.City = "CD";
edm.SaveChanges();
tran.Commit();
}
catch (Exception ex)
{
if (tran != null )
tran.Rollback();
throw ex;
}
finally
{
if (edm != null && edm.Connection.State != System.Data.ConnectionState.Closed)
edm.Connection.Close();
}
// Skip(N) ,跳过前N条,Take(m) ,取m条数据
var c=edm.Customers.OrderBy(c=>c.CustomerId).Skip(30).Take(20);//30-50
entity framework 新增,更新,事务的更多相关文章
- 在Entity Framework中使用事务
继续为想使用Entity Framework的朋友在前面探路,分享的东西虽然技术含量不高,但都是经过实践检验的. 在Entity Framework中使用事务很简单,将操作放在TransactionS ...
- Entity Framework 第二篇 事务
Entity Framework 事务 结合第一篇的代码 public class BaseRepository : ITransaction, IDisposable { private XFDb ...
- LinqToSql和ASP.NET Entity FrameWork 中使用事务
ASP.NET Entity FrameWork中: int flag = -1; if (this.URPmanagementEntities1.Connection.State != System ...
- Entity Framework 4 数据事务操作
利用数据库链接进行事务操作 var db = ConnectionHelper.GetConn(ConnectionType.Write);//获取上下文 var conn = db.Connecti ...
- .net entity framework 泛型 更新与增加记录
static public bool SaveOrUpdate<T>(T entity) where T: class { bool result = false; using (wech ...
- entity framework 5 更新指定字段
dbSet.Attach(good); var stateEntry = ((IObjectContextAdapter)context).ObjectContext. ObjectStateMana ...
- Entity Framework 新增实体,新增抽象实体
抽象实体不能new 抽象类:人,实体类:学生 人 p_人= new 学生(); 添加数据,学生和人都添加 抽象类可以提供一个抽象的方法,但是并没有实现,类似接口,但又不同于接口.子类继承父类时必须 ...
- Entity Framework 的事务
一个db.SaveChanges()相当于一个事务,多个db.SaveChanges()保证操作完整性则需要使用事务 在Entity Framework 中使用事务,事务只会对数据库操作进行回滚,不会 ...
- AppBox升级进行时 - Entity Framework的增删改查
AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. Entity Framework新增数据 以新增用户为例,作为对比,先来看下使 ...
随机推荐
- sql中的group by 和 having 用法解析
转载博客:http://www.cnblogs.com/wang-123/archive/2012/01/05/2312676.html --sql中的group by 用法解析:-- Group B ...
- yii---往对象里面添加属性
我们在用YII的时候,查询到一条数据,但是很多时候会往这条查询的数据里,添加某个字段,但是直接添加会报错: $thread = $this->getThreadService()->get ...
- Hibernate的10个常见面试问题及答案
在Java J2EE方面进行面试时,常被问起的Hibernate面试问题,大多都是针对基于Web的企业级应用开发者的角色的.Hibernate框架在Java界的成功和高度的可接受性使得它成为了Java ...
- TOP100summit:【分享实录】链家网大数据平台体系构建历程
本篇文章内容来自2016年TOP100summit 链家网大数据部资深研发架构师李小龙的案例分享. 编辑:Cynthia 李小龙:链家网大数据部资深研发架构师,负责大数据工具平台化相关的工作.专注于数 ...
- 1.1Tensorflow训练线性回归模型入门程序
tensorflow #-*- coding: utf-8 -*- # @Time : 2017/12/19 14:36 # @Author : Z # @Email : S # @File : 1. ...
- HDU 1754 - I Hate It & UVA 12299 - RMQ with Shifts - [单点/区间修改、区间查询线段树]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 Time Limit: 9000/3000 MS (Java/Others) Memory Li ...
- Spark集群高可用HA配置
本文中的Spark集群包含三个节点,分别是Master,Worker1,Worker2. 1.在Master机器上安装Zookeeper,本文安装在/usr/etc目录下 2.在Master机器配置Z ...
- split和strip的使用
我觉得都可以进行分隔,但最大的不同就是一个返回list,一个返回字符串 s1 = 'deng ye xun' s1.split() Out[8]: ['deng', 'ye', 'xun'] s1.s ...
- Dividing the Path POJ - 2373 dp
题意:你有无数个长度可变的区间d 满足 2a<=d<=2b且为偶数. 现在要你用这些区间填满一条长为L(L<1e6且保证是偶数)的长线段. 满足以下要求: 1.可变区间之间不能有 ...
- 经典的DOS小命令 for 网络 nbtstat
--网络scanner · 1.最基本,最常用的,测试物理网络的 ping 192.168.10.59 -t ,参数-t是等待用户去中断测试 2.查看DNS(对猫用户),还是比较有用处的 A.Win9 ...