Date Image Sunday, December 20, 2009 | Kategoriler | Ado.Net, Linq, Entity Framework, Tümü

Entity Framework'e Giriş - Insert/Update/Delete İşlemleri

   Microsoft'un ORM(Object Relational Mapping) için geliştirdiği Entity Framework için bir giriş yazısı ve örneği hazırladım. Anlatımı örnekler üzerinden yapmak istiyorum.

   İlk olarak en basit işlem olan Update işlemi ile başlayalım. Öncelikle bir console uygulaması oluşturduk. Sonra da projeye Entity Data Model ekledik(NorthwindEntity.edmx). Örnek için Northwind database ini kullandım ve Category tablosunu entity modeline ekledim. Main methodunda, Entity nesnemizin bir instance ını oluşturduk ve bunu using deyimi içerisinde yaptık.

Update işlemi için yapmamız gereken ilk şey, bir category nesnesini elde etmek.Bunu da linq ile sorgulayarak elde ettik. elde ettiğimiz category nesnesi üzerinde istediğimiz işlemi yapabiliriz. Ben sadece Description property sini değiştirdim. Sonrasında ise tek yapmamız gereken şey instance ını oluşturduğumuz entity model değişkenimizin SaveChanges metodunu çağırmak.

static void Main(string[] args)

        {

            Console.Title = "Entity Framework Insert/Update/Delete";

 

            using (NorthwindEntities db = new NorthwindEntities())

            {

                var cat = db.Categories.Where(c => c.CategoryID == 1).FirstOrDefault();

                cat.Description = "This category was changed.";

  

                db.SaveChanges();

  

                GetCategories(db);

                Console.ReadKey();

            }

        }

 

        private static void GetCategories(NorthwindEntities db)

        {

            var categories = from c in db.Categories

                             orderby c.CategoryName

                             select new

                             {

                                 c.CategoryName,

                                 c.Description

                             };

 

            foreach (var category in categories)

            {

                Console.WriteLine("Category Name : {0}\nDescription : {1}",

                                  category.CategoryName,

                                  category.Description);

            }

        }

Entity Framework Update

 

   Yukarıda görüldüğü üzere CategoryID si "1" olan Category nin Description property si değiştirildi.

 

Şimdi de yeni bir entity ekleyelim yani yeni bir kategori ekleyelim.

 

static void Main(string[] args)

        {

            Console.Title = "Entity Framework Insert/Update/Delete";

            using (NorthwindEntities db = new NorthwindEntities())

            {

                var cat = db.Categories.Where(c => c.CategoryID == 1).FirstOrDefault();

                cat.Description = "This category was changed.";

 

                var newCategory = new Categories();

                newCategory.CategoryName = "New Category";

                newCategory.Description = "This is a new category";

                db.AddToCategories(newCategory);

 

 

 

                db.SaveChanges();

 

                GetCategories(db);

                Console.ReadKey();

            }

        } 

 

   Yeni bir kategori eklemek için bir Category nesnesi oluşturup property lerini set ettik ve db adlı entity model değişkenimizin AddToCategories metoduna parametre olarak verdik. Böylece oluşturduğumuz entity yi db e kaydetmek için sıraya koyduk artık SaveChanges metodunu çağırınca yeni kategorimiz eklenmiş olacaktır.

 

Entity Framework Insert

 

   Son olarak da Delete işlemini yapalım. Silme işlemi de Update işleminde olduğu gibi öncelikle entity nin alınması ile başlıyor.

 

var exCategory = db.Categories.Where(c => c.CategoryID == newCategory.CategoryID).FirstOrDefault();

                db.DeleteObject(exCategory);

 

   Delete işleminde CategoryID karşılaştırmasında kullandığım newCategory.CategoryID bilgisi ile son eklediğimiz Category nin idsini alarak silinmesini sağladım. Burada hem eklenen kaydın SaveChanges metodunun çağrıldıktan sonra tüm özelliklerinin yüklendiğini hem de nasıl silme işleminin nasıl yapıldığını görmüş olduk.

   Kodumuzun son hali de aşağıdadır;

 

static void Main(string[] args)

        {

            Console.Title = "Entity Framework Insert/Update/Delete";

            using (NorthwindEntities db = new NorthwindEntities())

            {

                var cat = db.Categories.Where(c => c.CategoryID == 1).FirstOrDefault();

                cat.Description = "This category was changed.";

 

                var newCategory = new Categories();

                newCategory.CategoryName = "New Category";

                newCategory.Description = "This is a new category";

                db.AddToCategories(newCategory);

 

                db.SaveChanges();

 

                var exCategory = db.Categories.Where(c => c.CategoryID == newCategory.CategoryID).FirstOrDefault();

                db.DeleteObject(exCategory);

 

                db.SaveChanges();

 

                GetCategories(db);

                Console.ReadKey();

            }

        }

 

        private static void GetCategories(NorthwindEntities db)

        {

            var categories = from c in db.Categories

                             orderby c.CategoryName

                             select new

                             {

                                 c.CategoryName,

                                 c.Description

                             };

 

            foreach (var category in categories)

            {

                Console.WriteLine("Category Name : {0}\nDescription : {1}",

                                  category.CategoryName,

                                  category.Description);

            }

        }

Etiketler :