示例#1
0
        public int GetProductStock(int productId)
        {
            // Microsoft Doc
            var query = _context.Products
                        .Where(x => x.ProductID == productId)
                        .Select(d => AdventureWorksContextDI.GetProductStock(d.ProductID));

            // Exemple of externalized in static class as static function
            query = _context.Products
                    .Where(x => x.ProductID == productId)
                    .Select(d => ScalarFunctionsHelpers.GetProductStock(d.ProductID));

            // Exemple of externalized in static class as extension method
            query = _context.Products
                    .Where(x => x.ProductID == productId)
                    .Select(d => d.GetProductStock(d.ProductID));

            return(query.FirstOrDefault());
        }
示例#2
0
        private static void SqlFunctionTest()
        {
            System.Console.WriteLine("---------------");
            System.Console.WriteLine("SQL Function Test");

            string connectionString = "Server=127.0.0.1,1433;Database=ZFDb;User Id=sa;Password=P@ssw0rd";

            var optionsBuilder = new DbContextOptionsBuilder<MyContext>();
        
            optionsBuilder
                .UseLoggerFactory(LoggerFactory)
                .UseSqlServer(connectionString);

            using(var context = new MyContext(optionsBuilder.Options))
            {
                    // var customers = context.Customers
                    // .Where(c  => MyContext.GetCountOrder(c.Id) > 0)    
                    // .ToList();


                // usage as static class 
                var customers2 = context.Customers
                   .Where(c  => ScalarFunctionsHelpers.GetCountOrder(c.Id) > 0)                   
                   .ToList();

                foreach(var customer in customers2)
                {
                    System.Console.WriteLine($"{customer.FirstName}");
                }

                // usage as extension method
                var customers3 = context.Customers
                   .Where(c  => c.GetCountOrder(c.Id) > 0)                   
                   .ToList();

            }

        }