示例#1
0
        private static void CallAStoredProcedure()
        {
            SoftuniContext context = new SoftuniContext();

            string[] name = Console.ReadLine().Split();

            var projects = context.Database.SqlQuery <ProjectViewModel>($"EXEC EmployeeProjects {name[0]}, {name[1]}");

            foreach (var project in projects)
            {
                Console.WriteLine($"{project.Name} - {project.Description}, {project.StartDate}");
                Console.WriteLine();
            }
        }
示例#2
0
        static void Main(string[] args)
        {
            var ctx = new SoftuniContext();

            #region 17.	Call a Stored Procedure
            #region Procedure in MSSQL
            //            create PROCEDURE GetProjectsForEmployee
            //    (@firstName varchar(30), @lastName Varchar(30))
            //As
            //Begin
            //select p.*from Employees as e
            //inner join EmployeesProjects as ep on e.EmployeeID = ep.EmployeeID
            //inner join Projects as p on ep.ProjectID = p.ProjectID
            //where e.FirstName = @firstName and e.LastName = @lastName
            //End
            #endregion

            Console.Write("Enter employee first and last name: ");
            string[] names = Console.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            SqlParameter param1 = new SqlParameter("@firstName", names[0]);
            SqlParameter param2 = new SqlParameter("@lastName", names[1]);

            ctx.Database
            .SqlQuery <Project>("exec dbo.GetProjectsForEmployee @firstName, @lastName", param1, param2)
            .Select(p => new
            {
                p.Name, p.Description, p.StartDate
            })
            .ToList().ForEach(p =>
            {
                Console.WriteLine($"{p.Name} - {p.Description}, {p.StartDate}");
            });

            #endregion

            #region 18.	Employees Maximum Salaries
            //ctx.Departments.Where(d => d.Employee.Salary > 70000 || d.Employee.Salary < 30000)
            //    .ToList().ForEach(d =>
            //    {
            //        Console.WriteLine($"{d.Name} {d.Employees.Max(e=>e.Salary):f2}");
            //    });
            #endregion
        }
示例#3
0
        private static void EmployeesMaximumSalaries()
        {
            SoftuniContext context = new SoftuniContext();

            foreach (var department in context.Departments)
            {
                List <decimal> MaxSalary = new List <decimal>();

                foreach (var salaries in department.Employees.Select(s => s.Salary))
                {
                    if (salaries < 30000 || salaries > 70000)
                    {
                        MaxSalary.Add(salaries);
                    }
                }
                if (MaxSalary.Count > 0)
                {
                    Console.WriteLine(department.Name);
                    Console.WriteLine($"{MaxSalary.Max():F2}");
                }
                Console.WriteLine();
            }
        }