public IActionResult UpdateAll(Employee[] employees) { context.Database.BeginTransaction(level); context.UpdateRange(employees); Employee temp = new Employee { SSN = "00-00-0000", FirstName = "Temporary", FamilyName = "Row", Salary = 0 }; context.Add(temp); context.SaveChanges(); System.Threading.Thread.Sleep(5000); context.Remove(temp); context.SaveChanges(); if (context.Employees.Sum(e => e.Salary) < 1_000_000) { context.Database.CommitTransaction(); } else { context.Database.RollbackTransaction(); logger.LogError("Salary total exceeds limit"); } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> InsertRangeAsync(Employee employee) { context.Add(employee); await context.SaveChangesAsync(); return(Ok()); }
public IActionResult UpdateAll(Employee[] employees) { context.Database.BeginTransaction(level); context.UpdateRange(employees); Employee temp = new Employee { SSN = "00-00-0000", FirstName = "Temporary", FamilyName = "Row", Salary = 0 }; context.Add(temp); context.SaveChanges(); System.Threading.Thread.Sleep(5000); context.Remove(temp); context.SaveChanges(); if (context.Employees.Sum(e => e.Salary) < 1_000_000) { context.Database.CommitTransaction(); } else { context.Database.RollbackTransaction(); throw new Exception("Salary total exceeds limit"); } //try //{ // context.UpdateRange(employees); // context.SaveChanges(); // context.Database.CommitTransaction(); //} //catch (Exception) //{ // context.Database.RollbackTransaction(); //} //foreach (Employee e in employees) //{ // try // { // context.Update(e); // context.SaveChanges(); // } // catch (Exception) // { // context.Entry(e).State = EntityState.Detached; // } //} return(RedirectToAction(nameof(Index))); }
public IActionResult Update(Employee employee) { if (_context.Employees.Count(e => e.SSN == employee.SSN && e.FirstName == employee.FirstName && e.FamilyName == employee.FamilyName) == 0) { _context.Add(employee); } else { Employee e = new Employee { SSN = employee.SSN, FirstName = employee.FirstName, FamilyName = employee.FamilyName, RowVersion = employee.RowVersion }; _context.Employees.Attach(e); e.Salary = employee.Salary; e.LastUpdated = DateTime.Now; } _context.SaveChanges(); return(RedirectToAction(nameof(Index))); }
public IActionResult UpdateAll(Employee[] employees) { //context.UpdateRange(employees); //context.SaveChanges(); //her bir güncelleme için ayrı transaction çalıştırmak için: //foreach (Employee e in employees) //{ // try // { // context.Update(e); // context.SaveChanges(); // } // catch (Exception) // { // context.Entry(e).State = EntityState.Detached; // } //} //context.Database.BeginTransaction(); //Otomatik transaction kapalı olduğu durumlarda grup güncellemesi için transaction ef ile açılabilir. //try //{ // context.UpdateRange(employees); // context.SaveChanges(); // Burada henüz db de değişiklik yoktur. transaction commit edildikten sonra db değişecektir. // if (context.Employees.Sum(e => e.Salary) < 1_000_000) // { // context.Database.CommitTransaction(); // } // else // { // context.Database.RollbackTransaction(); // throw new Exception("Salary total exceeds limit"); // } // context.Database.CommitTransaction(); //} //catch (Exception) //{ // context.Database.RollbackTransaction(); //} //context.Database.BeginTransaction(); //context.UpdateRange(employees); //context.SaveChanges(); //if (context.Employees.Sum(e => e.Salary) < 1_000_000) //{ // context.Database.CommitTransaction(); //} //else //{ // context.Database.RollbackTransaction(); // throw new Exception("Salary total exceeds limit"); //} context.Database.BeginTransaction(level); context.UpdateRange(employees); Employee temp = new Employee { SSN = "00-00-0000", FirstName = "Temporary", FamilyName = "Row", Salary = 0 }; context.Add(temp); context.SaveChanges(); System.Threading.Thread.Sleep(5000); context.Remove(temp); context.SaveChanges(); if (context.Employees.Sum(e => e.Salary) < 1_000_000) { context.Database.CommitTransaction(); } else { context.Database.RollbackTransaction(); logger.LogError("Salary total exceeds limit"); } return(RedirectToAction(nameof(Index))); }
public IActionResult Update(Employee employee, decimal originalSalary) { //Employee existing = context.Employees // .AsTracking() // .First(e => e.SSN == employee.SSN && e.FirstName == employee.FirstName // && e.FamilyName == employee.FamilyName); //if (existing == null) //{ // context.Add(employee); //} //else //{ // existing.Salary = employee.Salary; //} //context.SaveChanges(); //return RedirectToAction(nameof(Index)); //if (context.Employees.Count(e => e.SSN == employee.SSN // && e.FirstName == employee.FirstName // && e.FamilyName == employee.FamilyName) == 0) //{ // context.Add(employee); //} //else //{ // context.Update(employee); //} //Employee existing = context.Employees // .Find(employee.SSN, employee.FirstName, employee.FamilyName); //if(existing == null) //{ // //context.Entry(employee).Property("LastUpdated") // // .CurrentValue = System.DateTime.Now; // context.Add(employee); //} //else //{ // existing.Salary = salary; // context.Entry(existing).Property("LastUpdated") // .CurrentValue = System.DateTime.Now; //} if (context.Employees.Count(e => e.SSN == employee.SSN && e.FirstName == employee.FirstName && e.FamilyName == employee.FamilyName) == 0) { context.Add(employee); } else { Employee e = new Employee { SSN = employee.SSN, FirstName = employee.FirstName, FamilyName = employee.FamilyName, Salary = originalSalary, RowVersion = employee.RowVersion }; context.Employees.Attach(e); e.Salary = employee.Salary; e.LastUpdated = DateTime.Now; } context.SaveChanges(); return(RedirectToAction(nameof(Index))); }