#

EF: neuen Datensatz anlegen, wenn kein Treffer gefunden

 

Ein übliches Vorgehen bei Datenbanken ist, dass man einen Eintrag in einer Datenbank sucht, und wenn dieser nicht vorhanden ist, dann soll ein neuer Datensatz angelegt werden.

Das folgende Beispiel zeigt, wie man in EF Entity framework diese Aufgabe löst als Code Vorlage

 

 

 

 

 

 

 

EF Beispiel:

Suche einen Datensatz->wenn der Datensatz null ist, dann neuen Datensatz erstellen, ansonsten den gefundenen Datensatz verwenden

            //----< Speichern >----

            int ID;

            var data = db.tbl_Abwesenheiten.FirstOrDefault(rec=>rec.IDMitarbeiter==1);

            if(data == null)

            {

                //--< neuer Datensatz >--

                tbl_Abwesenheiten new_Record = new tbl_Abwesenheiten();

                new_Record.Inhalt = "Neuer Beitrag";

 

                //< save >

                db.tbl_Abwesenheiten.Add(new_Record); //ID: 0->-99999

                db.SaveChanges();                     //ID: -99999->16

                                                      //</ save >

 

                //< new ID >

                ID = new_Record.ID;

                //</ new ID >

                //--</ neuer Datensatz >--

            }

            else

            {

                //--< Datensatz_aendern >--

                //< save >

                data.Inhalt = "schon vorhanden";

                db.SaveChanges();                     //ID: -99999->16

                ID = data.ID;

 

                //--</ Datensatz_aendern >--

            }

            //----</ Speichern >----

 

 

 

 

Komplettes  C#, Entity Framework Beispiel

private void Item_Click(object sender, RoutedEventArgs e)

        {

            //-------------< Item_Click() >----------------------

            //*ContextMenu_Item

            //*: MenuItem__IDMitarbeiter_6_IDAbwesenheit_1_DatePlan_20190205

            MenuItem menuItem = (MenuItem) sender;

            string sName = menuItem.Name;

            

            //< QuellElement holen >

            ContextMenu contextMenu = (ContextMenu) menuItem.Parent;

            FrameworkElement element= (FrameworkElement) contextMenu.PlacementTarget;

            //</ QuellElement holen >

 

            //< Daten_ermitteln >

            int IDMitarbeiter = clsStrings.get_Key_Value_from_String_as_Integer(sName, "IDMitarbeiter");

            int IDAbwesenheitsgrund = clsStrings.get_Key_Value_from_String_as_Integer(sName, "IDAbwesenheitsgrund");

            DateTime DatePlan = clsStrings.get_Key_Value_from_String_as_Date(sName, "DatePlan");

            //</ Daten_ermitteln >

 

 

            //----< Speichern >----

            int IDAbwesenheit;

            var data = db.tbl_Abwesenheiten.FirstOrDefault(rec=>rec.IDMitarbeiter==IDMitarbeiter  && rec.IDAbwesenheitsgrund==IDAbwesenheitsgrund && rec.Date_Plan==DatePlan);

            if(data == null)

            {

                //--< neuer Datensatz >--

                tbl_Abwesenheiten new_Record = new tbl_Abwesenheiten();

                new_Record.IDMitarbeiter = IDMitarbeiter;

                new_Record.IDAbwesenheitsgrund = IDAbwesenheitsgrund;

                new_Record.Date_Plan = DatePlan;

 

                //< save >

                db.tbl_Abwesenheiten.Add(new_Record); //ID: 0->-99999

                db.SaveChanges();                     //ID: -99999->16

                                                      //</ save >

 

                //< new ID >

                IDAbwesenheit = new_Record.IDAbwesenheit;

                //</ new ID >

                //--</ neuer Datensatz >--

            }

            else

            {

                //--< Datensatz_aendern >--

                data.IDMitarbeiter = IDMitarbeiter;

                data.IDAbwesenheitsgrund = IDAbwesenheitsgrund;

                data.Date_Plan = DatePlan;

                //< save >

                db.SaveChanges();                     //ID: -99999->16

                IDAbwesenheit = data.IDAbwesenheit;

 

                //--</ Datensatz_aendern >--

            }

            //----</ Speichern >----

 

 

 

            //----< Anzeigen >----

 

            //----</ Anzeigen >----

 

            //-------------</ Item_Click() >----------------------

        }

 

 

Mobile

.

0123movie.net