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 新增,更新,事务的更多相关文章

  1. 在Entity Framework中使用事务

    继续为想使用Entity Framework的朋友在前面探路,分享的东西虽然技术含量不高,但都是经过实践检验的. 在Entity Framework中使用事务很简单,将操作放在TransactionS ...

  2. Entity Framework 第二篇 事务

    Entity Framework  事务 结合第一篇的代码 public class BaseRepository : ITransaction, IDisposable { private XFDb ...

  3. LinqToSql和ASP.NET Entity FrameWork 中使用事务

    ASP.NET Entity FrameWork中: int flag = -1; if (this.URPmanagementEntities1.Connection.State != System ...

  4. Entity Framework 4 数据事务操作

    利用数据库链接进行事务操作 var db = ConnectionHelper.GetConn(ConnectionType.Write);//获取上下文 var conn = db.Connecti ...

  5. .net entity framework 泛型 更新与增加记录

    static public bool SaveOrUpdate<T>(T entity) where T: class { bool result = false; using (wech ...

  6. entity framework 5 更新指定字段

    dbSet.Attach(good); var stateEntry = ((IObjectContextAdapter)context).ObjectContext. ObjectStateMana ...

  7. Entity Framework 新增实体,新增抽象实体

    抽象实体不能new 抽象类:人,实体类:学生 人 p_人= new 学生();   添加数据,学生和人都添加 抽象类可以提供一个抽象的方法,但是并没有实现,类似接口,但又不同于接口.子类继承父类时必须 ...

  8. Entity Framework 的事务

    一个db.SaveChanges()相当于一个事务,多个db.SaveChanges()保证操作完整性则需要使用事务 在Entity Framework 中使用事务,事务只会对数据库操作进行回滚,不会 ...

  9. AppBox升级进行时 - Entity Framework的增删改查

    AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. Entity Framework新增数据 以新增用户为例,作为对比,先来看下使 ...

随机推荐

  1. jquery中event对象属性与方法小结

    JQuery事件中的Event属性是经常性的被忽略的.大多数时间你的确不怎么用它,但有些时候它还是它还是有作用的.如获知触发时用户的环境(是否按了shift etc).每个浏览器对event都有不同的 ...

  2. nodejs事件的监听与事件的触发

    nodejs事件(Events) 一.事件机制的实现 Node.js中大部分的模块,都继承自Event模块(http://nodejs.org/docs/latest/api/events.html  ...

  3. 让HTML标签、DIV、SPAN拥有focus事件和blur事件,聚焦和失焦

    DIV和其他普通标签是不具有onfocus和onblur事件的.INPUT和A标签为什么拥有?而DIV和SPAN等普通标签却没有?有时候我们习惯性用键盘的TAB来移动光标,仔细看你会发现,光标只在IN ...

  4. 第一个maven项目

    1.新建maven project 注意:勾上create a new simple project 2.填写相关信息, Grounp id为大项目名字,Artifact id为小项目的名字.注意:P ...

  5. Windows Server 2008 R2之五操作主控的管理

    一.概述 操作主控(FSMO)也称作操作主机(OM),它是指在AD中一个或多个特殊的DC,用来执行某些特殊的功能(资源标识符SID分配.架构修改.PDC选择等). 1.操作主控的分类 基于森林的操作主 ...

  6. 小程序中的block

    <block/> 并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性. 因为 wx:if 是一个控制属性,需要将它添加到一个标签上.如果要一次性判断多个组件标签, ...

  7. PAT甲1077 Kuchiguse【字符串】【暴力】【Hash】【二分】

    1077 Kuchiguse (20 分) The Japanese language is notorious for its sentence ending particles. Personal ...

  8. PyQT5初学(一)

    PyQt5 是Digia的一套Qt5与python绑定的应用框架,同时支持2.x和3.x.本教程使用的是3.x.Qt库由Riverbank Computing开发,是最强大的GUI库之一 ,官方网站: ...

  9. 通过 Kubernetes 和容器实现 DevOps

    https://mp.weixin.qq.com/s/1WmwisSGrVyXixgCYzMA1w 直到 Docker 的出现(2008 年),容器才真正具备了较好的可操作性和实用性.容器技术的概念最 ...

  10. w_scripting_language

    https://en.wikipedia.org/wiki/Scripting_language A scripting or script language is a programming lan ...