Пример #1
0
        public static void execute()
        {
            char exec = '-';
            if (exec == '+') {
                Console.WriteLine("Exemple d'utilisation EF Select:\r\n");

                using (PubsContext db = new PubsContext()) {

                }

                Console.WriteLine("\r\n");
            }
        }
Пример #2
0
        public static void execute()
        {
            char exec = '-';
            if (exec == '+') {
                Console.WriteLine("Exemple d'utilisation EF Select:\r\n");

                Console.WriteLine("Avant ouverture de connexion:" + DateTime.Now);

                //MyContextConfiguration.Configure(useCachedDbModelStore: true);

                //on next run - use EdmxReader!
                //DbModelBuilder modelBuilder = new DbModelBuilder();
                //DbCompiledModel dbCompiledModel = modelBuilder.BuildModel(EdmxReader.Parse(XmlReader.Create(new FileStream(@"C:\temp\myEdmx.xml", FileMode.Open)));

                //MyContextConfiguration.Configure(useCachedDbModelStore: true);
                //using (PubsContext db = new PubsContext(dbCompiledModel)) {
                using (PubsContext db = new PubsContext()) {

                    // on first run
                    //var xml = XmlWriter.Create(new FileStream(@"C:\Temp\myEdmx.xml", FileMode.OpenOrCreate));
                    //EdmxWriter.WriteEdmx(db, xml);

                    //Console.WriteLine(Environment.SpecialFolder.ApplicationData);
                    //InteractiveViews.SetViewCacheFactory(db, new FileViewCacheFactory(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Console\EFCache\"));
                    //InteractiveViews.SetViewCacheFactory(db, new FileViewCacheFactory(@"C:\temp\myEdmx.xml"));

                    //Console.WriteLine("Avant requette1:" + DateTime.Now);
                    //foreach (var e in db.employees.ToList())
                    //    Console.WriteLine(e.fname);

                    //Console.WriteLine("Avant requette2:" + DateTime.Now);
                    //foreach (var e in (from t in db.employees where t.job_id == 10 select t))
                    //    Console.WriteLine(e.emp_id + " " + e.fname);

                    //Console.WriteLine("Avant requette3:" + DateTime.Now);
                    //foreach (var e in (db.employees.Where(t => t.fname.CompareTo("N") > 0).ToList()))
                    //    Console.WriteLine(e.emp_id + " " + e.fname);

                    Console.WriteLine("Avant requette4:" + DateTime.Now);
                    foreach (string name in
                        (from employee in db.employees where employee.fname.CompareTo("F") > 0 orderby employee.fname select employee.fname))
                        Console.WriteLine(name);

                    Console.WriteLine("Après dernière requette:" + DateTime.Now);
                }

                Console.WriteLine("Après déconnexion:" + DateTime.Now);
                Console.WriteLine("\r\n");
            }
        }
Пример #3
0
        public static void execute()
        {
            char exec = '-';
            if (exec == '+') {
                Console.WriteLine("Exemple d'utilisation Exeption:\r\n");

                // Example de deserialisation d'une exception qui à été serialisée un peut plus bas lors d'une execution precedente
                BinaryFormatter format = new BinaryFormatter();
                FileStream f = new FileStream("DataFile.dat", FileMode.Open);
                Exception exe = (Exception)format.Deserialize(f);
                Console.WriteLine("Message d'exception precedente qui a été sérialisée:" + exe.Message);
                f.Close();

                try {
                    using (PubsContext db = new PubsContext()) {
                        error.DivideError(); // A Commenter ou Decommenter pour les tests
                        error.MyError(0); // A Commenter ou Decommenter pour les tests
                        // Le bloc try s'arrete dès l'interception d'une erreur: les instructions suivante ne sont pas executées
                    }   // Sauf pour le using qui est une exception -> Db.dispose sera appelé même lors d'une Exception levée
                }
                catch (MyException ex) {
                    Console.WriteLine("Erreur:" + ex.Message);
                    Console.WriteLine("Source:" + ex.Source);
                    Console.WriteLine("Stack:" + ex.StackTrace);
                    Console.WriteLine("Target:" + ex.TargetSite);
                    Console.WriteLine("Help:" + ex.Data["Help"]); // Information specifique à MyException
                    Console.WriteLine("Data:");
                    foreach (DictionaryEntry de in ex.Data) { Console.WriteLine(de.Value); } // Affiche l'ensemble des infos du dictionnaire Data
                    throw new MyException2("Message1 MyException", ex); // Relance une nouvelle exception qui serra interceptée en innerException dans Program.Main()
                }
                catch (DivideByZeroException ex) {
                    Console.WriteLine("Division par zero:" + ex.Message);
                    // Serialisation de l'object Exception dans un fichier
                    BinaryFormatter formater = new BinaryFormatter();
                    FileStream fs = new FileStream("DataFile.dat", FileMode.Create);
                    formater.Serialize(fs, ex);
                    fs.Close();
                    // Envoie mail si erreur --> Doit être traité dans Main() qui intercepte tout les innerException
                    // Email.send("*****@*****.**", Message, GetFile("DataFile.dat");
                    // on peut envoyer en PJ le fichier qui a été serialisé
                    // Apparament BinnaryFormater est prévu déja pour pouvoir communiquer dirrectement avec d'autre services RPC ou réseaux ???
                    throw new ArgumentException("Div By zero", ex); // Relance une nouvelle exception qui serra interceptée en innerException dans Program.Main()
                }

                // catch (groupeException ex) -> toutes les exceptions qui heritent de groupeException sont interceptées

                catch (Exception ex) { // En dernier lieu on intercepte toutes les exceptions eventuellement
                    Console.WriteLine("Exception non traitée:" + ex.Message);
                    // FermerBaseDeDonnee(); // On effectue les traitements necessaire avant de quittez le programme suite à erreur
                    throw; // On relance la même exeption afin que le programme s'arrete --> Le stack indiquerra la ligne d'origine dans le try qui a provoqué l'erreur
                           // throw ex -> Idem ci-dessus mais le stack indiquerra cette ligne comme orrigine du problème
                }

                finally {
                    Console.WriteLine("Execution de Finaly dans tous les cas");
                }

                // Le prg reprend ici après l'interception d'une erreur
                Console.WriteLine("Fin execute");

                Console.WriteLine("\r\n");
            }
        }