public static void VeritabaniIdIleGuncelle(this object dbClass)
        {
            List <string> kolonlarVeDegerleri = new List <string>();

            Type dbClassType = dbClass.GetType();                                                  //Type cinsine cevirelim

            DbTablo DbTablo = (DbTablo)Attribute.GetCustomAttribute(dbClassType, typeof(DbTablo)); // verilen type icin atrribute fonsiyonuna ulastik

            string tabloAdi = DbTablo.TabloAd;                                                     //attribute sinifinin verilerine ulasabildik
            string id       = null;

            FieldInfo[] kolonAlanlari = dbClassType.GetFields(BindingFlags.Public | BindingFlags.Instance); //classin property'lerine ulastik
            try
            {
                foreach (FieldInfo kolonAlani in kolonAlanlari)
                {
                    //kolonAdi degeri bos olmamali yoksa hata verecektir. Her alan bosta olsa gonderilmelidir.

                    DbKolon DbKolon = (DbKolon)Attribute.GetCustomAttribute(kolonAlani, typeof(DbKolon)); //Her property'nin attribute'una gidip kolon adini aldik.
                    if (DbKolon.KolonAd != "ID")                                                          //Id otomatik veritabaninda atanacak insert tipinde eklemeyelim.
                    {
                        object kolonDegeri = kolonAlani.GetValue(dbClass);
                        if (kolonDegeri != null)
                        {
                            string kolonVeDegeri = DbKolon.KolonAd + " = '" + kolonDegeri.ToString() + "' ";
                            kolonlarVeDegerleri.Add(kolonVeDegeri);
                        }
                    }
                    else
                    {
                        id = kolonAlani.GetValue(dbClass).ToString();
                        if (id == "0")
                        {
                            throw new Exception("Lütfen geçerli bir Id değeri giriniz.");
                        }
                    }
                }
                //sql sorgusunu olusturduk.
                string update = "UPDATE ";
                //tabloAdi;
                string guncellenecekVeriler = string.Join(",", kolonlarVeDegerleri.ToArray());

                string sql = update + tabloAdi + " SET " + guncellenecekVeriler + "WHERE ID = '" + id + "'";
                Console.WriteLine(sql);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public static void VeritabaninaKaydet(this object dbClass)
        {
            List <string> columnNames = new List <string>();
            List <string> values      = new List <string>();

            Type dbClassType = dbClass.GetType();                                                           //Type cinsine cevirelim

            DbTablo DbTablo = (DbTablo)Attribute.GetCustomAttribute(dbClassType, typeof(DbTablo));          // verilen type icin atrribute fonsiyonuna ulastik

            string tabloAdi = DbTablo.TabloAd + " ";                                                        //attribute sinifinin verilerine ulasabildik

            FieldInfo[] kolonAlanlari = dbClassType.GetFields(BindingFlags.Public | BindingFlags.Instance); //classin property'lerine ulastik
            try
            {
                foreach (FieldInfo kolonAlani in kolonAlanlari)
                {
                    //kolonAdi degeri bos olmamali yoksa hata verecektir. Her alan bosta olsa gonderilmelidir.

                    DbKolon DbKolon = (DbKolon)Attribute.GetCustomAttribute(kolonAlani, typeof(DbKolon)); //Her property'nin attribute'una gidip kolon adini aldik.
                    if (DbKolon.KolonAd != "ID")                                                          //Id otomatik veritabaninda atanacak insert tipinde eklemeyelim.
                    {
                        object kolonDegeri = kolonAlani.GetValue(dbClass);
                        if (kolonDegeri != null)
                        {
                            columnNames.Add(DbKolon.KolonAd);
                            values.Add("'" + kolonDegeri.ToString() + "'"); //Her property'nin runtime degerine ulastik
                        }
                    }
                }
                //sql sorgusunu olusturduk.
                string insert    = "INSERT INTO ";
                string columnSet = string.Join(",", columnNames.ToArray());
                string valueSet  = string.Join(",", values.ToArray());

                string sql = insert + tabloAdi + "(" + columnSet + ")" + " VALUES " + "(" + valueSet + ")";
                Console.WriteLine(sql);
            }
            catch (Exception ex)
            {
                Console.WriteLine(columnNames[columnNames.Count - 1] + " alanı eklenmemiş!");
            }
        }
        public static void VeritabanindanVeriArayan(this object dbClass)
        {
            List <string> kolonlarVeDegerleri = new List <string>();

            Type dbClassType = dbClass.GetType();                                                           //Type cinsine cevirelim

            DbTablo DbTablo = (DbTablo)Attribute.GetCustomAttribute(dbClassType, typeof(DbTablo));          // verilen type icin atrribute fonsiyonuna ulastik

            string tabloAdi = DbTablo.TabloAd;                                                              //attribute sinifinin verilerine ulasabildik

            FieldInfo[] kolonAlanlari = dbClassType.GetFields(BindingFlags.Public | BindingFlags.Instance); //classin property'lerine ulastik
            try
            {
                foreach (FieldInfo kolonAlani in kolonAlanlari)
                {
                    //kolonAdi degeri bos olmamali yoksa hata verecektir. Her alan bosta olsa gonderilmelidir.

                    DbKolon DbKolon     = (DbKolon)Attribute.GetCustomAttribute(kolonAlani, typeof(DbKolon)); //Her property'nin attribute'una gidip kolon adini aldik.
                    object  kolonDegeri = kolonAlani.GetValue(dbClass);
                    if (kolonDegeri != null)
                    {
                        string kolonVeDegeri = DbKolon.KolonAd + " = '" + kolonDegeri.ToString() + "' ";
                        kolonlarVeDegerleri.Add(kolonVeDegeri);
                    }
                }
                //sql sorgusunu olusturduk.
                string select = "SELECT * FROM ";
                //tabloAdi;
                string guncellenecekVeriler = string.Join(",", kolonlarVeDegerleri.ToArray());

                string sql = select + tabloAdi + " WHERE " + guncellenecekVeriler;
                Console.WriteLine(sql);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public static void VeritabanindanSil(this object dbClass)
        {
            Type    dbClassType = dbClass.GetType();
            DbTablo DbTablo     = (DbTablo)Attribute.GetCustomAttribute(dbClassType, typeof(DbTablo));
            string  tabloAdi    = DbTablo.TabloAd;
            string  id          = null;

            FieldInfo[] kolonAlanlari = dbClassType.GetFields(BindingFlags.Public | BindingFlags.Instance);
            try
            {
                foreach (FieldInfo kolonAlani in kolonAlanlari)
                {
                    //kolonAdi degeri bos olmamali yoksa hata verecektir. Her alan bosta olsa gonderilmelidir.

                    DbKolon DbKolon = (DbKolon)Attribute.GetCustomAttribute(kolonAlani, typeof(DbKolon)); //Her property'nin attribute'una gidip kolon adini aldik.
                    if (DbKolon.KolonAd == "ID")                                                          //Id otomatik veritabaninda atanacak insert tipinde eklemeyelim.
                    {
                        id = kolonAlani.GetValue(dbClass).ToString();
                        if (id == "0")
                        {
                            throw new Exception();
                        }
                        break;
                    }
                }
                //sql sorgusunu olusturduk.
                string delete = "DELETE FROM ";

                string sql = delete + tabloAdi + " WHERE ID=" + id;
                Console.WriteLine(sql);
            }
            catch (Exception ex)
            {
                Console.WriteLine("ID alani boş bırakılamaz! ");
            }
        }