[转]Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务

本节,直接写通过代码来学习。这些基本操作都比较简单,与这些基本操作相关的内容在之前的16节基本介绍完毕。

l          增加:

方法1:使用AddToXXX(xxx)方法:实例代码如下:

           using (var edm =new NorthwindEntities())

           {

               Customers c = new Customers { CustomerID = "c#", City = "成都市", Address ="中国四川省", CompanyName ="cnblogs", Country = "中国", Fax ="10086", Phone = "1008611", PostalCode ="610000", Region = "天府广场", ContactName ="风车车.Net" };

               edm.AddToCustomers(c);

               int result = edm.SaveChanges();

               Assert.AreEqual(result, 1);

               Customers addc = edm.Customers.FirstOrDefault(cc => cc.CustomerID =="c#");

               Console.WriteLine("CustomerId={0},City={1}", addc.CustomerID, addc.City);

            }

方法2:使用ObjectContextAddObject(string entitySetName,object entity)方法。实例代码如下:

using (var edm =new NorthwindEntities())

           {

                   Customers c = new Customers { CustomerID = "c2", City = "成都市2", Address ="中国四川省2", CompanyName ="cnblogs", Country = "中国", Fax ="10086", Phone = "1008611", PostalCode ="610000", Region = "天府广场", ContactName ="风车车.Net" };

                   edm.AddObject("Customers", c);

                   int result = edm.SaveChanges();

                   Assert.AreEqual(result, 1);

                   Customers addc = edm.Customers.FirstOrDefault(cc => cc.CustomerID =="c2");

                   Console.WriteLine("CustomerId={0},City={1}", addc.CustomerID, addc.City);

             }

其中,在代码中,需要注意的是: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();

            }

至此,初级篇基本介绍完毕。后面,打算写点,中级篇的东西。

 
     本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  转自:  ♂风车车.Net
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值