예제 #1
0
파일: Program.cs 프로젝트: safaeee/projet5
 public static Employe RemoveEmploye(string nom)
 {
     using (CONCURENSYEntities Context = new CONCURENSYEntities())
     {
         Employe emp = Context.Employes.Find(nom);
         Context.Employes.Remove(emp);
         Context.SaveChanges();
         return(emp);
     }
 }
예제 #2
0
파일: Program.cs 프로젝트: safaeee/projet5
        static void Main(string[] args)
        {
            //L'utilisateur 1 et l'utilisateur 2 tentent tous les deux de mettre à jour la même entité(update)
            Employe e1 = null, e2 = null;

            using (var ctx = new CONCURENSYEntities()) { e1 = getEmploye(ctx, 1); }
            using (var ctx = new CONCURENSYEntities()) { e2 = getEmploye(ctx, 1); }

            e1.salaire = 20000;
            e2.salaire = 30000;

            try { using (var ctx = new CONCURENSYEntities()) { saveEmploye(ctx, e1); } }
            catch (DbUpdateConcurrencyException ex)
            {
                Console.WriteLine("Ereeur concurence user 1" + ex.Message);
            }
            try { using (var ctx = new CONCURENSYEntities()) { saveEmploye(ctx, e2); } }
            catch (DbUpdateConcurrencyException ex)
            {
                Console.WriteLine("Ereeur concurence user 2" + ex.Message);
            }
            //L'utilisateur 1 et l'utilisateur 2 tentent tous les deux de supprimer la même entité (delete)
            using (var ctx = new CONCURENSYEntities()) { e1 = RemoveEmploye(1); }
            using (var ctx = new CONCURENSYEntities()) { e2 = RemoveEmploye("Aloui"); }

            try { using (var ctx = new CONCURENSYEntities()) { saveEmploye(ctx, e1); } }
            catch (DbUpdateConcurrencyException ex)
            {
                Console.WriteLine("Ereeur concurence user 1" + ex.Message);
            }
            try { using (var ctx = new CONCURENSYEntities()) { saveEmploye(ctx, e2); } }
            catch (DbUpdateConcurrencyException ex)
            {
                Console.WriteLine("Ereeur concurence user 2" + ex.Message);
            }
            //L'utilisateur 1 essaie de mettre à jour la même entité (update) où l'utilisateur 2 l'a supprimée (delete)
            using (var ctx = new CONCURENSYEntities()) { e1 = getEmploye(ctx, 1); }
            using (var ctx = new CONCURENSYEntities()) { e2 = RemoveEmploye("Aloui"); }
            e1.nom = "saidi";
            try { using (var ctx = new CONCURENSYEntities()) { saveEmploye(ctx, e1); } }
            catch (DbUpdateConcurrencyException ex)
            {
                Console.WriteLine("Ereeur concurence user 1" + ex.Message);
            }
            try { using (var ctx = new CONCURENSYEntities()) { saveEmploye(ctx, e2); } }
            catch (DbUpdateConcurrencyException ex)
            {
                Console.WriteLine("Ereeur concurence user 2" + ex.Message);
            }
            //L'utilisateur 1 a demandé à lire (select) une entité et l'utilisateur 2 l'a mise à jour après l'avoir lu
            using (var ctx = new CONCURENSYEntities()) { e1 = getEmploye(ctx, 1); }
            using (var ctx = new CONCURENSYEntities()) { e2 = getEmploye(ctx, 1); }
            using (var ctx = new CONCURENSYEntities()) {
                e1.nom = "saidi";
                try { using (var ct = new CONCURENSYEntities()) { saveEmploye(ctx, e1); } }
                catch (DbUpdateConcurrencyException ex)
                {
                    Console.WriteLine("Ereeur concurence user 1" + ex.Message);
                }
                try { using (var ct = new CONCURENSYEntities()) { saveEmploye(ct, e2); } }
                catch (DbUpdateConcurrencyException ex)
                {
                    Console.WriteLine("Ereeur concurence user 2" + ex.Message);
                }
                Console.WriteLine(getEmploye(ctx, 1).nom);
                Console.ReadKey();
            }
        }
예제 #3
0
파일: Program.cs 프로젝트: safaeee/projet5
        public static Employe getEmploye(CONCURENSYEntities ctx, int id)
        {
            Employe emp = ctx.Employes.Where(e => e.id == id).Single();

            return(emp);
        }
예제 #4
0
파일: Program.cs 프로젝트: safaeee/projet5
 public static void saveEmploye(CONCURENSYEntities ctx, Employe emp)
 {
     ctx.Entry(emp).State = EntityState.Modified;
     ctx.SaveChanges();
 }