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