Volkan Atasever

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve daha bir çok yazılarım...

Entity Framework Kullanımı

clock Ocak 28, 2017 07:48 by author Volkan Atasever

Birden çok ORM yani Object Relational Mapping aracı vardır. .NET üstünde resmi frameworklerden biri Entity Framework'tür. Entitfy Framework kısaca EF, nesneye yönelik programlamada kullanılan ve veritabanındaki tablolara karşılık gelen nesneleri oluşturarak işlem yapan alt yapıdır.

Entity Framewor ile veritabanı işlemleri daha hızlı ve daha kolay yapılmasına rağmen büyük projelerde hız konusunda sınıfta kalmaktadır. Hala veritabanında çalışan stored procedure tekniği daha hızlıdır. Tabi ki bu büyük proje dediğim kavramın gerçekten big datalarla çalışıldığı durumları içerdiğinin bilinmesi gerekir.

Şu anda LINQ to Entities teknolojisi ile Entity Framework kullacağız.

Temel kaydet, güncelle, dil ve ara işlemlerini yaparak Entity Framework kullanarak temel işlemlerimizi yapacağız.

 

Öncelikle Solution sekmemize sağ tıklayıp add -> new items sekmesinden ado entity data model seçimini yapıyoruz.

 

 Ardından açılan pencerede eğer varolan bir veritabanından çağrı yapacaksak EF Designer from database sekmesini tıklayarak ilerliyoruz.

 

 

 Açılan pencerede daha önce bir connection yani bağlantı olmadığı için new connection butonunu tıklıyoruz.

 

 

 SQL Server bağlantı bilgilerimizi girdikten sonra veritabanını seçip pencereyi onaylıyoruz.

 

 

 Artık bağlantımız hazır hale gelmiş durumda.

 

 

 

 Gelen pencereden entity framework’ün hangi versiyonunu kullanacağımızı seçiyoruz.

 

 Bu örneğimizde veritabanında olan tek tabloyu seçip modellenmesini istedik.

 

 

 .edmx uzantılı diyagramımızda artık hikaye veritabanındaki hikayeler tablosunu görebiliyoruz.

 

 Bu işlemleri yaptıktan sonra aşağıdaki isim alanları projemize eklendiler. Bundan sonra LINQ to Entities kullanarak temel işlemleri yapabiliriz.

 

EntityFramework

System.ComponentModel.DataAnnotations

System.Data.Entity

System.Runtime.Serialization

System.Security

 

Şimdi bir örnek uygulama yapalım. Kullanıcı arayüzümüz aşağıdaki gibidir;

 

Veri eklemek için buton click olayına aşağıdaki kodu yazalım;

        privatevoid button2_Click(object sender, EventArgs e)

        {

            using (EFhikayeDBEntities efh = newEFhikayeDBEntities())

            {

                hikayeler hky = newhikayeler();

                hky.tip = textBox1.Text;

                hky.hikaye = textBox2.Text;

                efh.hky.Add(hky);

                efh.SaveChanges();

            }

            textBox1.Text = "";

            textBox2.Text = "";

        }

 

Kayıt silmek için buton click olayımıza aşağıdaki kodu yazabiliriz;

        privatevoid button3_Click(object sender, EventArgs e)

        {

            int id = Convert.ToInt32(dataGridView1.CurrentRow.Cells["ID"].Value);

 

            using (EFhikayeDBEntities efh = newEFhikayeDBEntities())

            {

                var liste = from h in efh.hky

                            where h.ID == id

                            select h;

 

                liste.ToList().ForEach(x => efh.hky.Remove(x));

                efh.SaveChanges();

            }

        }

    }

 

Verileri listelemek içinde click olayımıza aşağıda kodu yazalım;

privatevoid button1_Click(object sender, EventArgs e)

{

    

            using (EFhikayeDBEntities ehd = newEFhikayeDBEntities())

            {

                var liste = from h in ehd.hky

                            orderby h.ID ascending

                            selectnew

                            {

                                Id=h.ID,

                                tip = h.tip,

                                hikaye = h.hikaye

                            };

               dataGridView1.DataSource = liste.ToList();

            }

       

}

 

Container sınıfımızda aşağıdaki gibidir;

publicpartialclassEFhikayeDBEntities : DbContext

{

        public EFhikayeDBEntities()

            : base("name=EFhikayeDBEntities")

        {

        }

 

        protectedoverridevoid OnModelCreating(DbModelBuilder modelBuilder)

        {

            thrownewUnintentionalCodeFirstException();

        }

 

        publicDbSet<hikayeler> hky { get; set; }

 

}



Özelleştirilmiş DataBase Rolü tanımlamak ve izinleri yönetmek

clock Ekim 21, 2009 04:50 by author Volkan Atasever

Özelleştirilmiş veri tabanı rolleri sayesinde kullanıclara istediğimiz gibi özelleştirebildiğimiz rolleri atamamızı sağlar bu sayede özel bir rol tanımlayıp istediğimiz sayıda kullanıcıya bu rolleri atayabiliriz. Bunları yapmak bize hız ve veritabanımızı da daha kolay yönetmemizi sağlamaktadır. Aşağıda yeni bir rol tanımlayıp bu role kendi seçimimiz olan rolleri verip kullanıcımıza da bu rolleri atamktayız. Scriptte kullandığım sp_addrolemember prosedürü sql server'a ait bir prosedür olup bu rolleri kullanıcının rolü haline getirmemizi sağlamaktadır.

 

Bu adımda AdventureWorks database'i üstünde rol yaratmaktayız;

USEAdventureWorks

GO

CREATE ROLE [TestRol_1] AUTHORIZATION[dbo]

Go

 

Burada tanımladığımız rol'e izinlerimizi veriyoruz.

USE AdventureWorks

GO

GRANT ALTER,EXECUTE, SELECT,INSERT,UPDATE,DELETE

ON SCHEMA ::dbo

TO TestRol_1

Go

 

USEAdventureWorks

GO

GRANT BACKUP DATABASE,BACKUP LOG To [TestRol_1]

Go

 

SQL Server'ın ken içinde barındırdığı sp_addrolemember prosedürü ile rolümüze kullanıcı eklemekteyiz.

USEAdventureWorks

GO

EXEC sp_addrolememberN'TestRol_1', N'USER_ISMI'

GO

 

Bu adımda rolünü tanımladığımız kullanıcı için Windows Login hakkı vermekteyiz varsayılan veritabanı olaraksa AdventureWork veritabanını kullanmaktayız.

USEAdventureWorks

GO

CREATE LOGIN [DenemeDomain\USER_ISMI] FROM WINDOWS WITH DEFAULT_DATABASE=AdventureWorks

GO

 

Bu adımda veri tabanı için kullanıcımızı tanımlamaktayız.

USEAdventureWorks

GO

CREATE USER [USER_ISMI] FORLOGIN [DenemeDomain\USER_ISMI]

GO

 

Kaynak: Namwar Rizvi



Volkan Atasever Kimdir ?

E-Mail: volkan(et)volkanatasever.com

Kurucu&Genel Müdür/S4G
Bilgisayar Mühendisi
Eğitmen ve Danışman
Teknoloji Yazarı

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve bir çok kategoride yazılarım...

     

Yazılım Kitaplarım

   

Şiir Kitaplarım

Ulusal Yayınlar ve Programlar

 

Sosyal Ağlarım

 

 

 

 

Retro Bilgisayar Dergimiz

Türkçe Retro Bilgisayar dergimiz haziran 2016'da ilk sayısını çıkardı.  Sizde katkıda bulunmak isterseniz bana mail atmanız yeterli. Dergimiz PDF formatında ve tamamen ücretsizdir. Software4Galaxy imtiyaz sahibidir. S4G sitesinden veya facebook sayfasından dergilere ulaşabilirsiniz.

Üye Olduğum Dernek ve Organizasyonlar

 

Yasal Bilgi

Sitedeki yazıları,kodlar ve diğer materyaller Volkan Atasever'e aittir. Yazarı ve siteyi kaynak göstererek yazıları paylaşabilirsiniz.  Copyright(c)2004-2019

Sign In

Yazılım