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


    本节,直接写通过代码来学习。这些基本操作都比较简单,与这些基本操作相关的内容在之前的1至6节基本介绍完毕。
    
    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:使用ObjectContext的AddObject(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();
    
                }
    
    至此,初级篇基本介绍完毕。后面,打算写点,中级篇的东西。
    

      

  • 相关阅读:
    EasyPlayer iOS开源流媒体播放器中AAC解码PCM问题
    EasyPlayer iOS开源流媒体播放器中AAC解码PCM问题
    AAC包增加ADTS头Without MediaCodec
    AAC包增加ADTS头Without MediaCodec
    嵌入式流媒体音视频服务器EasyIPCamera中live555发送性能优化点
    嵌入式流媒体音视频服务器EasyIPCamera中live555发送性能优化点
    EasyDarwin开源流媒体服务器性能优化之Work-stealing优化方案
    EasyDarwin开源流媒体服务器性能优化之Work-stealing优化方案
    Visual Studio解决方案vs2005/vs2008/vs2010/vs2012/vs2013/vs2015版本互相转换工具
    Visual Studio解决方案vs2005/vs2008/vs2010/vs2012/vs2013/vs2015版本互相转换工具
  • 原文地址:https://www.cnblogs.com/Akgu/p/5156325.html
Copyright © 2020-2023  润新知