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();

}

时间: 2024-10-16 16:17:08

entity framework 新增,更新,事务的相关文章

在Entity Framework中使用事务

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 继续为想使用Entity Framework的朋友在前面探路,分享的东西虽然技术含量不高,但都是经过实践检验的. 在Entity Framework中使用事务很简单,将操作放在TransactionScope中,并通过Complete()方法提

Entity Framework update 更新失败..(AsNoTracking)

之前更新Entity都是直接修改Context.Entry(entity).State = EntityState.Modified; 后来看到其他一些框架使用的update都是直接SaveChanges() ,就直接改为了SaveChangs 而后由于AsNoTracking更高效,而并不清楚为什么..所以每次查询都直接AsNoTracking().. 导致EF在update时,并没有保存成功..

Entity Framework 4 数据事务操作

利用数据库链接进行事务操作 var db = ConnectionHelper.GetConn(ConnectionType.Write);//获取上下文 var conn = db.Connection;//取出数据库链接 conn.Open();//打开链接 using (var trans = conn.BeginTransaction()) 开启事务 { ServiceStationEntities db = null;            db = new ServiceStatio

entity framework 5 更新指定字段

dbSet.Attach(good); var stateEntry = ((IObjectContextAdapter)context).ObjectContext. ObjectStateManager.GetObjectStateEntry(good); stateEntry.SetModified(); stateEntry.SetModifiedProperty("Title"); stateEntry.SetModifiedProperty("UpdateDate

MVC5 Entity Framework学习之实现主要的CRUD功能

在上一篇文章中,我们使用Entity Framework 和SQL Server LocalDB创建了一个MVC应用程序,并使用它来存储和显示数据.在这篇文章中,你将对由 MVC框架自己主动创建的CRUD(create, read, update, delete)代码进行改动. 注意:通常我们在控制器和数据訪问层之间创建一个抽象层来实现仓储模式.为了将注意力聚焦在怎样使用实体框架上.这里暂没有使用仓储模式. 在本篇文章中,要创建的web页面: watermark/2/text/aHR0cDovL

MVC5 Entity Framework学习之实现基本的CRUD功能

在上一篇文章中,我们使用Entity Framework 和SQL Server LocalDB创建了一个MVC应用程序,并使用它来存储和显示数据.在这篇文章中,你将对由 MVC框架自动创建的CRUD(create, read, update, delete)代码进行修改. 注意:通常我们在控制器和数据访问层之间创建一个抽象层来实现仓储模式,为了将注意力聚焦在如何使用实体框架上,这里暂没有使用仓储模式. 在本篇文章中,要创建的web页面: 1.创建一个Details页面 由框架代码生成的Stud

MVC5 Entity Framework学习之更新相关数据

在上篇文章中学习了如何在页面中显示相关数据,本节中将学习如何对相关数据进行更新.对于大多数实体关系,可以通过更新外键或导航属性来更新数据,对于多对多关系,Entity Framework不会直接公开连接表,所以你需要通过相应的导航属性来添加和移除实体. 先看完成后的效果图 为Courses自定义Create 和Edit 页面 当一个新的course实体被创建时,该实体必须关联到一个已存在的department.要做到这一点,生成的框架代码应该要包括控制器方法和用于选择department的下列列

关于Entity Framework自动关联查询与自动关联更新导航属性对应的实体注意事项说明

一.首先了解下Entity Framework 自动关联查询: Entity Framework 自动关联查询,有三种方法:Lazy Loading(延迟加载),Eager Loading(预先加载),Explicit Loading(显式加载),其中Lazy Loading和Explicit Loading都是延迟加载. (注:由于Entity Framework版本的不同,以及采用不同的模式(DB First,Model First,Code First)来构建的Entity,最终导致可能自

【C#】Entity Framework 增删改查和事务操作

1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否可空) var user = new User { Name = "bomo", Age = 21, Gender = "male" }; db.User.Add(user); db.SaveChanges(); 2.删除对象,删除只需要对象的主键 DbEntity d