zoukankan      html  css  js  c++  java
  • Entity Framework 4.0 ObjectContext下的各种方法实践

    1. AddObject

    View Code
     1         private static void AddObjectDemo1()
     2         {
     3             Console.WriteLine("--------Begin AddObjectDemo1");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 Customers addCustomer = edm.Customers.FirstOrDefault(c => c.CustomerID == "001");
     7                 if (addCustomer == null)
     8                 {
     9                     Customers customer = new Customers { CustomerID = "001", CompanyName = "HongFan" };
    10                     edm.AddObject("Customers", customer);
    11                     int result = edm.SaveChanges();
    12                 }
    13                 Console.WriteLine("CustomerID={0}, CompanyName={1}", addCustomer.CustomerID, addCustomer.CompanyName);
    14             }
    15             Console.WriteLine("--------End AddObjectDemo1");
    16         }

     

    2. AddObject 带映射关系

    View Code
     1         private static void AddObjectDemo2()
     2         {
     3             Console.WriteLine("--------Begin AddObjectDemo2");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 Categories cate1 = new Categories { CategoryName = "Category1" };
     7                 Categories cate2 = new Categories { CategoryName = "Category2" };
     8                 Products product1 = new Products { ProductName = "Category1--Product1", Discontinued = true };
     9                 Products product2 = new Products { ProductName = "Category2--Product2", Discontinued = false };
    10 
    11                 cate1.Products.Add(product1);
    12                 cate2.Products.Add(product2);
    13 
    14                 edm.Categories.AddObject(cate1);
    15                 edm.Categories.AddObject(cate2);
    16 
    17                 edm.SaveChanges();
    18 
    19                 Console.WriteLine("Linq2Entities...");
    20 
    21                 var categories = from category in edm.Categories
    22                                  where category.CategoryName == "Category1" || category.CategoryName == "Category2"
    23                                  select category;
    24 
    25                 foreach (var category in categories)
    26                 {
    27                     Console.WriteLine("分类:{0}", category.CategoryName);
    28                     foreach (var product in category.Products)
    29                     {
    30                         Console.WriteLine("产品:{0}", product.ProductName);
    31                     }
    32                 }
    33 
    34                 Console.WriteLine("EntitySQL...");
    35 
    36                 var esql = @"select value c from Categories as c where c.CategoryName='Category2' or c.CategoryName='Category2'";
    37                 var categoriesESQL = edm.CreateQuery<Categories>(esql);
    38 
    39                 foreach (var category in categories)
    40                 {
    41                     Console.WriteLine("分类:{0}", category.CategoryName);
    42                     foreach (var product in category.Products)
    43                     {
    44                         Console.WriteLine("产品:{0}", product.ProductName);
    45                     }
    46                 }
    47             }
    48             Console.WriteLine("--------End AddObjectDemo2");
    49         }

    3. DeleteObject

    View Code
     1         private static void DeleteObjectDemo()
     2         {
     3             Console.WriteLine("--------Begin DeleteObjectDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 Customers customer = edm.Customers.FirstOrDefault(c => c.CustomerID == "001");
     7                 if (customer != null)
     8                 {
     9                     edm.DeleteObject(customer);
    10                     int result = edm.SaveChanges();
    11                 }
    12 
    13                 customer = edm.Customers.FirstOrDefault(c => c.CustomerID == "001");
    14                 if (customer == null)
    15                 {
    16                     Console.WriteLine("CustomerID为001的客户已被删除成功。");
    17                 }
    18                 else
    19                 {
    20                     Console.WriteLine("CustomerID={0},CompanyName={1}", customer.CustomerID, customer.CompanyName);
    21                 }
    22             }
    23             Console.WriteLine("--------End DeleteObjectDemo");
    24         }

    4. SaveChanges

    View Code
     1         private static void SaveChangesDemo()
     2         {
     3             Console.WriteLine("--------Begin SaveChangesDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 Customers customer = edm.Customers.FirstOrDefault(c => c.CustomerID == "001");
     7                 if (customer != null)
     8                 {
     9                     customer.CompanyName = "HongFanKeJi";
    10                     int result = edm.SaveChanges();
    11                     Customers updateC = edm.Customers.FirstOrDefault(c => c.CustomerID == "001");
    12                     Console.WriteLine("CustomerID={0}, CompanyName={1}", updateC.CustomerID, updateC.CompanyName);
    13                 }
    14             }
    15             Console.WriteLine("--------End SaveChangesDemo");
    16         }

    5. ExecuteStoreCommand

    View Code
     1         private static void ExecuteStoreCommandDemo()
     2         {
     3             Console.WriteLine("--------Begin ExecuteStoreCommandDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = @"insert into Customers(CustomerID, CompanyName) values(@CustomerID, @CompanyName)";
     7                 var parm = new DbParameter[] {
     8                     new SqlParameter { ParameterName = "CustomerID", Value = "002" },
     9                     new SqlParameter { ParameterName = "CompanyName", Value = "GuangzhouHongFan" }
    10                 };
    11 
    12                 Customers customer = edm.Customers.FirstOrDefault(c => c.CustomerID == "002");
    13                 if (customer != null)
    14                 {
    15                     edm.Customers.DeleteObject(customer);
    16                     edm.SaveChanges();
    17                 }
    18                 int rowCount = edm.ExecuteStoreCommand(strSql, parm);
    19                 Console.WriteLine("{0} rows inserted", rowCount.ToString());
    20 
    21                 Customers customerInserted = edm.Customers.FirstOrDefault(c => c.CustomerID == "002");
    22                 Console.WriteLine("CustomerID={0}, CompanyName={1}", customerInserted.CustomerID, customerInserted.CompanyName);
    23             }
    24             Console.WriteLine("--------End ExecuteStoreCommandDemo");
    25         }

    6.ExecuteStoreQuery

    View Code
     1         private static void ExecuteStoreQueryDemo()
     2         {
     3             Console.WriteLine("--------Begin ExecuteStoreQueryDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = "select * from Customers where CompanyName=@CompanyName";
     7                 var parm = new DbParameter[] {
     8                     new SqlParameter { ParameterName = "CompanyName", Value = "GuangzhouHongfan"}
     9                 };
    10                 var customers = edm.ExecuteStoreQuery<Customers>(strSql, parm);
    11 
    12                 foreach (var customer in customers)
    13                 {
    14                     Console.WriteLine("CustomerID={0}, CompanyName={1}", customer.CustomerID, customer.CompanyName);
    15                 }
    16             }
    17             Console.WriteLine("--------End ExecuteStoreQueryDemo");
    18         }

    7. Execute

    View Code
     1         private static void ExecuteDemo()
     2         {
     3             Console.WriteLine("--------Begin ExecuteDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = "select value c from NorthwindEntities.Customers as c order by c.CustomerID limit 10";
     7 
     8                 ObjectQuery<Customers> query = edm.CreateQuery<Customers>(strSql);
     9                 ObjectResult<Customers> results = query.Execute(MergeOption.NoTracking);
    10                 foreach (Customers c in query)
    11                 {
    12                     Console.WriteLine("CustomerID={0}, CompanyName={1}", c.CustomerID, c.CompanyName);
    13                 }
    14 
    15                 Console.WriteLine(Environment.NewLine);
    16 
    17                 foreach (Customers c in results)
    18                 {
    19                     Console.WriteLine("CustomerID={0}, CompanyName={1}", c.CustomerID, c.CompanyName);
    20                 }
    21             }
    22             Console.WriteLine("--------End ExecuteDemo");
    23         }

    8. ToTraceString

    View Code
     1         private static void ToTraceStringDemo()
     2         {
     3             Console.WriteLine("--------Begin ToTraceStringDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = "select value c from NorthwindEntities.Customers as c order by c.CustomerID limit 10";
     7 
     8                 ObjectQuery<Customers> query = edm.CreateQuery<Customers>(strSql);
     9                 Console.WriteLine("The sql for this statement: select value c from NorthwindEntities.Customers as c order by c.CustomerID limit 10\r\n");
    10                 Console.WriteLine(query.ToTraceString());
    11             }
    12             Console.WriteLine("--------End ToTraceStringDemo");
    13         }

    9. Where

    View Code
     1         private static void WhereDemo()
     2         {
     3             Console.WriteLine("--------Begin WhereDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = "select value c from NorthwindEntities.Customers as c order by c.CustomerID limit 10";
     7 
     8                 ObjectQuery<Customers> query = edm.CreateQuery<Customers>(strSql);
     9                 query.Name = "a";
    10                 query = query.Where("a.CustomerID=@customerID"new ObjectParameter("customerID""001"));
    11 
    12                 foreach (Customers c in query)
    13                 {
    14                     Console.WriteLine("CustomerID={0}, CompanyName={1}", c.CustomerID, c.CompanyName);
    15                 }
    16             }
    17             Console.WriteLine("--------End WhereDemo");
    18         }

    10. FirstOrDefault

    View Code
     1         private static void FirstOrDefaultDemo()
     2         {
     3             Console.WriteLine("--------Begin FirstOrDefaultDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = "select value c from NorthwindEntities.Customers as c order by c.CustomerID limit 10";
     7 
     8                 ObjectQuery<Customers> query = edm.CreateQuery<Customers>(strSql);
     9                 
    10                 //如果没有符合条件的数据,那么将会抛出异常。
    11                 Customers c1 = query.First();
    12 
    13                 //如果没有符合条件的数据,那么将返回null。
    14                 Customers c2 = query.FirstOrDefault();
    15 
    16                 Console.WriteLine("CustomerID={0}, CompanyName={1}", c1.CustomerID, c1.CompanyName);
    17                 Console.WriteLine("CustomerID={0}, CompanyName={1}", c2.CustomerID, c2.CompanyName);
    18             }
    19             Console.WriteLine("--------End FirstOrDefaultDemo");
    20         }

    11. Distinct

    View Code
     1         private static void DistinctDemo()
     2         {
     3             Console.WriteLine("--------Begin DistinctDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = "select value c.City from NorthwindEntities.Customers as c order by c.CustomerID limit 10";
     7 
     8                 ObjectQuery<string> query = edm.CreateQuery<string>(strSql);
     9                 query = query.Distinct();
    10 
    11                 foreach (string city in query)
    12                 {
    13                     Console.WriteLine("City:{0}", city);
    14                 }
    15             }
    16             Console.WriteLine("--------End DistinctDemo");
    17         }

    12. Include

    View Code
     1         private static void IncludeDemo()
     2         {
     3             Console.WriteLine("--------Begin IncludeDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = "select value c from NorthwindEntities.Customers as c where c.CustomerID='001'";
     7 
     8                 ObjectQuery<Customers> query = edm.CreateQuery<Customers>(strSql);
     9                 query = query.Include("Orders");
    10 
    11                 foreach (Customers customer in query)
    12                 {
    13                     Console.WriteLine("CustomerID={0}, OrderCount={1}", customer.CustomerID, customer.Orders.Count);
    14                 }
    15 
    16                 Console.WriteLine(query.ToTraceString());
    17             }
    18             Console.WriteLine("--------End IncludeDemo");
    19         }

    13. OrderBy

    View Code
     1         private static void OrderByDemo()
     2         {
     3             Console.WriteLine("--------Begin OrderByDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = "select value c from NorthwindEntities.Customers as c order by c.CustomerID limit 10";
     7 
     8                 ObjectQuery<Customers> query = edm.CreateQuery<Customers>(strSql);
     9                 query.OrderBy("it.country asc, it.city asc");
    10 
    11                 // 也可以这样写
    12                 //query.OrderBy("it.country asc");
    13                 //query.OrderBy("it.city asc");
    14 
    15                 foreach (Customers c in query)
    16                 {
    17                     Console.WriteLine("CustomerID={0}, CompanyName={1}", c.CustomerID, c.CompanyName);
    18                 }
    19             }
    20             Console.WriteLine("--------End OrderByDemo");
    21         }

    14. Select

    View Code
     1         private static void SelectDemo()
     2         {
     3             Console.WriteLine("--------Begin SelectDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = "select value c from NorthwindEntities.Customers as c order by c.CustomerID limit 10";
     7 
     8                 ObjectQuery<Customers> query = edm.CreateQuery<Customers>(strSql);
     9                 ObjectQuery<DbDataRecord> records = query.Select("it.customerid, it.country");
    10 
    11                 foreach (DbDataRecord c in records)
    12                 {
    13                     Console.WriteLine("CustomerID={0}, Country={1}", c["customerid"], c["country"]);
    14                 }
    15                 Console.WriteLine(records.ToTraceString());
    16             }
    17             Console.WriteLine("--------End SelectDemo");
    18         }

    15. SelectValue

    View Code
     1         private static void SelectValueDemo()
     2         {
     3             Console.WriteLine("--------Begin SelectValueDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = "select value c from NorthwindEntities.Customers as c order by c.CustomerID limit 10";
     7 
     8                 ObjectQuery<Customers> query = edm.CreateQuery<Customers>(strSql);
     9                 ObjectQuery<string> records = query.SelectValue<string>("it.customerid");
    10 
    11                 foreach (string c in records)
    12                 {
    13                     Console.WriteLine("CustomerID={0}", c);
    14                 }
    15                 Console.WriteLine(records.ToTraceString());
    16             }
    17             Console.WriteLine("--------End SelectValueDemo");
    18         }

    16. Skip、Top

    View Code
     1         private static void SkipTopDemo()
     2         {
     3             Console.WriteLine("--------Begin SkipTopDemo");
     4             using (var edm = new NorthwindEntities())
     5             {
     6                 string strSql = "select value c from NorthwindEntities.Customers as c order by c.CustomerID";
     7 
     8                 ObjectQuery<Customers> query = edm.CreateQuery<Customers>(strSql);
     9                 query = query.Skip("it.customerid asc""10"); // 排序,跳过条数
    10                 query = query.Top("10");
    11 
    12                 foreach (Customers c in query)
    13                 {
    14                     Console.WriteLine("CustomerID={0}", c.CustomerID);
    15                 }
    16                 Console.WriteLine(query.ToTraceString());
    17             }
    18             Console.WriteLine("--------End SkipTopDemo");
    19         }
  • 相关阅读:
    iframe页面调用父窗口JS函数
    href超级链接里加上javascript代码的,还有target问题
    IE上的兼容性调整问题烦死啦
    如何在java web工程下建立存储property文件的文件夹,让Java程序直接读取
    当是class com.cosl.po.Pc$$EnhancerByCGLIB$$38c58f03时,反射属性都他妈不好用了
    好奇怪啊,如果邮箱JSON格式的字符串不是在一行上,那么转为JSON将转换不成功,估计是数据格式有问题吧
    flexpaper上传带中文名字的文档,在页面显示若出现404错误时,请在server.xml文件中进行编码utf-8
    loger4j时间一长,就不向数据库里写日志啦,然而重新启动工程后就可以再次向数据库写日志,好奇怪
    直接在filter过滤器代码里加org.apache.struts2.ServletActionContext.getRequest()会出现空指针情况
    ssh框架从页面传中文发生乱码时怎么解决,就是添加一个字符编码拦截器。用springframework自带的便可
  • 原文地址:https://www.cnblogs.com/myself/p/1965758.html
Copyright © 2011-2022 走看看