Esempio n. 1
0
        static void SeedData()
        {
            using var context = new PhoneDbContext();
            var company1 = new Company()
            {
                Name = "Samsung"
            };
            var company2 = new Company()
            {
                Name = "Apple"
            };

            var phone1 = new Phone()
            {
                Name = "Samsung Galaxy A70", Price = 12000, Company = company1
            };
            var phone2 = new Phone()
            {
                Name = "Samsung Galaxy S20", Price = 20000, Company = company1
            };
            var phone3 = new Phone()
            {
                Name = "IPhone 11", Price = 25000, Company = company2
            };
            var phone4 = new Phone()
            {
                Name = "IPhone XR", Price = 15000, Company = company2
            };

            context.Phones.AddRange(phone1, phone2, phone3, phone4);
            context.SaveChanges();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            using var context = new PhoneDbContext();

            Console.WriteLine("ASYNCHRONOUS STORED PROCEDURE CALL: \n");

            //RecreateDB();
            //SeedData();

            var paramId1 = new SqlParameter()
            {
                ParameterName = "@paramId",
                SqlDbType     = SqlDbType.Int,
                Direction     = ParameterDirection.Input,
                Value         = 1
            };

            var id = new SqlParameter()
            {
                ParameterName = "@id",
                SqlDbType     = SqlDbType.Int,
                Direction     = ParameterDirection.Output
            };

            var name = new SqlParameter()
            {
                ParameterName = "@name",
                SqlDbType     = SqlDbType.VarChar,
                Direction     = ParameterDirection.Output,
                Size          = 30
            };

            var price = new SqlParameter()
            {
                ParameterName = "@price",
                SqlDbType     = SqlDbType.Int,
                Direction     = ParameterDirection.Output
            };

            var task1 = context.Database.ExecuteSqlRawAsync("GetPhoneByID_1 @paramId, @id OUT, @name OUT, @price OUT", paramId1, id, name, price);

            task1.Wait();

            Console.WriteLine($"1) {id.Value}. {name.Value} - {price.Value}$");

            //Console.WriteLine("\nPRESS ANY KEY\n");
            //Console.ReadKey();

            var paramId2 = new SqlParameter("@paramId", 3);
            var task2    = new Task <Phone>(() => context.Phones
                                            .FromSqlRaw("GetPhoneByID_2 @paramId", paramId2)
                                            .ToList()
                                            .FirstOrDefault()
                                            );

            task2.Start();

            var car = task2.Result;

            Console.WriteLine($"2) {car.Id}. {car.Name} - {car.Price}$");
        }
Esempio n. 3
0
 static void RecreateDB()
 {
     using var context = new PhoneDbContext();
     context.Database.EnsureDeleted();
     context.Database.Migrate();
 }