Entity Framework linq

來源:互聯網
上載者:User
 static void Main(string[] args)
        {
            using (var oAWEntities = new AdventureWorksEntities())
            {
                // 1. Easy example but not very flexible
                //    Select all products without any constraints
                foreach (var product in oAWEntities.Product)
                {
                    Console.WriteLine(string.Format("{0} | {1} | {2}",
                        product.ProductID, product.Name, product.ListPrice));
                }
                Console.ReadLine();

                // 2. Same example as above using LINQ
                foreach (var product in from p in oAWEntities.Product
                                        select p)
                {
                    Console.WriteLine(string.Format("{0} | {1} | {2}",
                        product.ProductID, product.Name, product.ListPrice));
                }
                Console.ReadLine();

                // 3. Same example as above externalizing the LINQ query
                //    Select 20 products without any constraints
                var query = from p in oAWEntities.Product
                            select p;

                foreach (var product in query.Take(20))
                {
                    Console.WriteLine(string.Format("{0} | {1} | {2}",
                        product.ProductID, product.Name, product.ListPrice));
                }
                Console.ReadLine();

                // 4. Example using Lambda Expressions
                //    Select 20 products that have a review rating above 3
                var queryLambda = from p in oAWEntities.Product
                            where p.ProductReview.Any(pr => pr.Rating > 3)
                            select p;

                foreach (var product in queryLambda.Take(20))
                {
                    Console.WriteLine(string.Format("{0} | {1} | {2}",
                        product.ProductID, product.Name, product.ListPrice));
                }

                Console.ReadLine();
                Console.Clear();

                // 5. This serves to see what SQL queries are send to the Database
                var oQuery = (System.Data.Objects.ObjectQuery<Product>)query;
                Console.WriteLine(oQuery.ToTraceString());
                Console.ReadLine();

                using (var oAWEntities2 = new AdventureWorksEntities())
                {
                    // 6. Select the count of all products that are sold out
                    //    This will only work if you re-add the deleted MakeFlag
                    //var querySoldOut = from p in oAWEntities2.Product
                    //                   where p.MakeFlag == true
                    //                   select p;
                    //Console.WriteLine(string.Format("SoldOutProductCount: {0}", querySoldOut.Count()));
                    //Console.ReadLine();

                    // 7. Select the count of all products that are sold out
                    var querySoldOut = from p in oAWEntities2.Product
                                       where p is SoldOutProduct
                                       select p;

                    Console.WriteLine(string.Format("SoldOutProductCount: {0}", querySoldOut.Count()));
                    Console.ReadLine();
                }

                // 8. Update the StandardCost value
                using (var oAWEntities4 = new AdventureWorksEntities())
                {
                    var queryForUpdateCost = from p in oAWEntities4.Product
                                where p.ProductID.Equals(3)
                                select p;

                    var product = queryForUpdateCost.First();

                    Console.WriteLine(string.Format("{0} | {1} | {2}",
                        product.Name, product.ProductNumber, product.StandardCost));
                    Console.ReadLine();

                    product.StandardCost += 100;
                    oAWEntities4.SaveChanges();
                }

                // 9. Query the StandardCost value to verify update
                using (var oAWEntities5 = new AdventureWorksEntities())
                {
                    var queryForUpdateCost2 = from p in oAWEntities5.Product
                                where p.ProductID.Equals(3)
                                select p;

                    var product = queryForUpdateCost2.First();

                    Console.WriteLine(string.Format("{0} | {1} | {2}",
                        product.Name, product.ProductNumber, product.StandardCost));
                    Console.ReadLine();
                }

                // 10. Try to set the StandardCost value to a negative value --> get exception
                using (var oAWEntities6 = new AdventureWorksEntities())
                {
                    var queryForUpdateCost3 = from p in oAWEntities6.Product
                                where p.ProductID.Equals(3)
                              

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.