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()); }
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(); } }