zoukankan      html  css  js  c++  java
  • Entity Framework 学习初级篇7基本操作:增加、更新、删除、事务

    本节,直接写通过代码来学习。这些基本操作都比较简单

           增加:

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

                }

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

    作者:罗敏贵
    邮箱:minguiluo@163.com
    QQ群:34178394 建群 主要是寻找志同道合的人士一起学习和讨论自己的所学所思
    出处:http://luomingui.cnblogs.com/
    说明:专注于微软平台项目架构、熟悉设计模式、架构设计、敏捷个人和项目管理。现主要从事WinForm、ASP.NET、等方面的项目开发、架构、管理工作。文章为作者平时里的思考和练习,可能有不当之处,请博客园的园友们多提宝贵意见。
    知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。

  • 相关阅读:
    数组里的数据绑定到dataset中
    有关字符串匹配的方法
    sql语句全集
    Dialog 的6中提示方式
    android开源项目和框架
    MyEclipse DB Browser使用图文全攻略
    省市县联动(转)
    LRU算法
    Java 性能优化小细节
    HashMap
  • 原文地址:https://www.cnblogs.com/luomingui/p/2027203.html
Copyright © 2011-2022 走看看