Entity Framework Nedir?

Entity Framework Nedir?

Entity Framework Nedir? Entity Framework Microsoft tarafından geliştirilen bir ORM Object-Relational Mapping teknolojisidir Bu teknoloji, veritabanı işlemlerini kolaylaştırarak NET programcısı için zaman kazandıran bir araçtır Hakkında daha fazla bilgi edinmek için tıklayın

Entity Framework Nedir?

Entity Framework, .NET Framework ile birlikte kullanabileceğiniz bir ORM (Object-Relational Mapping) aracıdır. Veritabanlarına yapılan tüm işlemler nesne yönelimli bir şekilde gerçekleştirilir. Bu sayede, SQL sorgularını yazmak yerine nesne yönelimli bir yapıda programlama yapabilirsiniz.

Entity Framework aynı zamanda, veritabanı bağımsızlığı sağlar. Başka bir deyişle, programlama diliyle ya da veritabanıyla uyumlu sorgular kullanmanızı gerektirmez. Bu sayede, programlama sürecinde veritabanı değiştirildiğinde de yapılan kodlar etkilenmez. Ayrıca, Entity Framework veritabanı işlemlerini yönetirken önbellek kullanır. Bu sayede tekrar eden sorguların tekrar tekrar yapılmaması, veritabanı erişim hızını ve performansını artırır.


Code-First Yaklaşımı Nedir?

Code-First, Entity Framework üzerinde kullanılan bir yaklaşımdır. Bu yaklaşım, geliştiricilerin Entity Framework'ü kullanarak hızlı bir şekilde veritabanı modellemesi yapmasına olanak tanır. Aynı zamanda, geliştiricilerin daha az kod yazmasını ve veritabanı şemalarını yönetmesini kolaylaştırır. Bu yaklaşım, var olan veritabanları yerine, kodları kullanarak yeni bir veritabanı oluşturur.

Code-First yaklaşımı, geliştiricilerin verileri modellemede daha fazla esneklik sağlar. Geliştiriciler, sınıflarını belirleyerek ve bu sınıflardaki özellikleri kullanarak veritabanı tabloları ve ilişkileri oluşturabilirler. Sınıflar, System.Data.Entity.DbContext sınıfından türetilen bir sınıf içinde tanımlanır. Bu türetilmiş sınıf, veritabanı oluşturma işlemlerinde kullanılır.

Code-First yaklaşımı, geliştiricilerin veritabanlarına daha az müdahale etme ihtiyacı duymasını sağlar. Bu yaklaşım, geliştiricilerin sadece sınıfları ve ilişkileri tanımlamasına izin verir. Veritabanı oluşturma işlemi, Entity Framework tarafından otomatik olarak tamamlanır. Bu nedenle, veritabanı schema'sını veya tablo düzenlemelerini değiştirmek isteyen geliştiriciler, kodları tekrar yazmak yerine, var olan kodu değiştirerek işlem yapabilirler.

Bu nedenle, Code-First yaklaşımı, geliştiricilerin veritabanı modellerini daha hızlı ve daha esnek bir şekilde oluşturmasını sağlar. Ayrıca, geliştiricilerin veritabanı şemalarını veya tabloları yönetme ihtiyacını azaltır.


Yöntem 1: Veritabanı Oluşturmayı Başlatma

Yöntem 1 olan veritabanı oluşturma işlemi, Code-First yaklaşımını kullanarak gerçekleştirilir. Bu yaklaşım sayesinde, uygulama ile ilgili ihtiyaçlar doğrultusunda veritabanı oluşturulur ve bu sayede veritabanı tasarımı, geliştirme sürecinin önemli bir sıkıntısından kurtularak basitleştirilir.

Veritabanı oluşturma işlemi için öncelikle makinenin adı ve kullanılacak port numarası belirlenmelidir. Bunun için aşağıdaki kodlar kullanılabilir:

string server = ".";string database = "MyDatabase";string connectionString = string.Format("Server={0};Database={1};Integrated Security=True;", server, database);

Bu kodlar, makine adını ve yeni veritabanının adını belirler ve ayrıca veritabanı oluşturmak için gereken bağlantı dizesini oluşturur.

Veritabanı oluşturmak için ise aşağıdaki kodlar kullanılabilir:

using (var db = new MyDbContext(connectionString)){    db.Database.CreateIfNotExists();}

Bu kodlar, yeni bir MyDbContext nesnesi oluşturur ve daha önce oluşturulan bağlantı dizesini kullanarak veritabanını oluşturur.

Bu yöntem ile, Code-First yaklaşımını kullanarak kolaylıkla yeni bir veritabanı oluşturulabilir. Geliştirme aşamasında, uygulamanın ihtiyacı doğrultusunda veritabanı tasarımı değiştirilebilir ve bu değişiklikler otomatik olarak uygulamaya yansır.


Makine Adı ve Port Belirleme

Entity Framework, veritabanı işlemlerini otomatikleştiren modern bir teknolojidir. Code-First yaklaşımı kullanarak veritabanı oluşturulabilir veya çalışma süreci var olan bir veritabanı üzerinden yürütülebilir. Ancak, bu yaklaşımı kullanırken makine adı ve port numarasını belirlemek oldukça önemlidir. Bunun için aşağıdaki kodları kullanarak belirleyebilirsiniz:

Kod Açıklama
data source=DESKTOP-12345; Makine adı
Initial Catalog=myDatabase; Veritabanı adı
Integrated Security=true; Windows kimlik doğrulama
user id=myUsername; Kullanıcı adı
password=myPassword; Şifre
portNumber=1433; Port numarası

Bu kodlar, veritabanı bağlantısının sağlanabilmesi için gerekli olan makine adı, veritabanı adı, kullanıcı adı, şifre ve port numarasını belirler. Bu bilgileri doğru şekilde girerek, Entity Framework kullanarak veritabanı işlemlerini hızlı ve kolay bir şekilde gerçekleştirebilirsiniz.


Veritabanı Oluşturma

Code-First yaklaşımı kullanılarak veritabanı oluşturmak oldukça kolaydır. Bunun için aşağıdaki adımlar takip edilmelidir:

  1. Öncelikle bir DbContext alt sınıfı oluşturulmalıdır. Bu alt sınıfın ilgili DbSet özellikleri ile birlikte veritabanındaki tablo yapılarını tanımlaması gerekmektedir.
  2. Yeni bir veritabanı oluşturma işlemi gerçekleştirileceği için öncelikle veritabanının adı belirlenmelidir. Bunun için DbConnectionStringBuilder sınıfı kullanılabilir.
  3. Ardından SqlConnection nesnesi oluşturulur ve ConnectionString özelliğine önceden belirlenen ad ve bulunacak veritabanının SQL Server adı ve diğer ayarlar eklenir. Sonrasında SqlConnection nesnesi açılır.
  4. Veritabanı oluşturma işlemi gerçekleştirileceği için veritabanı nesnesini oluşturmak gereklidir. Bunun için DbContext alt sınıfı kullanılır.
  5. Veritabanı oluşturulacağı zaman DbContext alt sınıfındaki bir istemci yöntemi çağrılır. Bu yöntem sadece bir kez çağrılmalıdır.
  6. Son olarak, SqlConnection nesnesinin Close metodu çağrılır ve SqlConnection nesnesi kapatılır.

Oluşturulan veritabanının doğru olup olmadığını görmek için SQL Studio Management edilir ve yeni oluşturulan veritabanının bir tablosu olduğunu görebilirsiniz.


Yöntem 2: Varolan Bir Veritabanı Üzerinde Çalışma

Entity Framework, .NET programlama dilinde bir ORM (Object Relational Mapping) aracıdır. Entity Framework ile birlikte, kullanıcılar veri tabanı işlemlerini yapmak için veri tabanı nesnelerini kullanabiliyorlar. Bu nesneler Entity Framework tarafından veritabanındaki tablolara karşılık gelir. Entity Framework ile birlikte veritabanı oluşturmak için iki farklı yöntem bulunmaktadır.

Var olan bir veritabanı üzerinde çalışmak için, öncelikle var olan veritabanınızın bir veri modeli oluşturmanız gerekir. Ardından, DbContext sınıfınızda bu veri modeli üzerinde işlem yapacak DbSet nesnesini tanımlayın.

Veri modelinizi oluşturmak için önce tablolarınızı bir veri modeli sınıfına dönüştürmeniz gerekir. Bu sınıfta, tablonun birincil anahtarlarını tanımlayın. Bunun yanı sıra, sınıflarda yalnızca veritabanı nesnelerinin özellikleri olması gerektiğini unutmayın.

C# diliyle bir veri modeli oluşturmak için aşağıdaki kodu kullanabilirsiniz:

public class SampleEntity{    public int Id { get; set; }    public string Name { get; set; }}

Daha sonra, DbContext sınıfınızı oluşturun ve DbContext sınıfınızda DbSet nesnenizi kullanarak mevcut veri tabanındaki verileri listelenmesini sağlayın.

Örnek bir DbContext sınıfı şöyle görünebilir:

public class SampleContext : DbContext{    public SampleContext() : base("SampleConnectionString")    {    }    public DbSet SampleEntities { get; set; }}

Örnekte görüldüğü gibi, bağlantıyı belirlemek için connection string'i constructor'a gönderdiğinizi fark edebilirsiniz. Daha sonra, DbContext sınıfınızda SampleEntity DbSet nesnenizi kullanarak verileri çekebilirsiniz.


Çoklu Bağlantı Nasıl Sağlanır?

Çoklu bağlantı, bir uygulamanın birden fazla veritabanına bağlanmasını mümkün kılan bir özelliktir. Entity Framework, bu özellik sayesinde farklı veritabanlarına birbirinden bağımsız şekilde bağlanabilir.Bu işlem için öncelikle bağlantı dizelerinin tanımlanması gerekiyor. Bağlantı dizesi, veritabanına nasıl bağlanılacağını belirten bir yapıdır. Birden fazla veritabanına bağlanmak istendiğinde her bir veritabanı için ayrı bağlantı dizesi tanımlanması gerekiyor.Tanımlanan bağlantı dizeleri, uygulama içerisinde kullanılacak ve herhangi bir veri işlemi yapılırken ilgili veritabanına bağlanıp işlem gerçekleştirecek. Birden fazla bağlantı dizesi tanımlandığında, uygulamanın hangi veritabanıyla işlem yapacağı belirtilmelidir.Birden fazla veritabanına bağlanmak için kullanılan bir diğer yöntem ise global olarak tanımlanmış çalışma zamanı değerleri kullanmaktır. Bu yöntemde, tüm bağlantılar ortak bir yapıda tanımlanarak, herhangi bir zamanda tüm bağlantıların değiştirilmesi mümkündür.


Bağlantı Dizeleri Tanımlama

Bağlantı dizeleri, Entity Framework'ün veritabanına bağlanmak için kullandığı anahtarlardır ve genellikle uygulama ayarları dosyasında yer alırlar. Bu kodlar, veritabanına bağlanırken nasıl davranılacağına dair bilgi verir. Bu nedenle, uygulama çalıştırıldığında, Entity Framework belirtilen bağlantı dizesini kullanarak veritabanına bağlanır.

Bağlantı dizeleri tanımlama işlemi oldukça basittir. Öncelikle, Web.config veya App.config dosyanızda bir bağlantı dizesi oluşturun. Bu dosyalar, uygulamanızın kök dizininde bulunur. Bağlantı dizesini tanımlarken, veritabanı sunucusunun adı, bağlandığınız veritabanının adı, kimlik doğrulama bilgileri ve diğer bağlantı bilgileri belirtilir.

Bağlantı Dizeleri
localhost Veritabanı sunucusunun adı veya IP adresi
myDatabase Bağlandığınız veritabanının adı
integrated security=True Kimlik doğrulama bilgileri

Bağlantı dizesini doğru bir şekilde tanımladıktan sonra, Entity Framework'u bağlantı dizesiyle başlatmanız gerekir. Aşağıdaki kod, bağlantı dizesiyle birlikte Entity Framework'ü başlatır:

using (var context = new MyContext("name=myConnectionString")){   // Context işlemleri burada yapılır.}

Bağlantı dizeleri tanımlama işlemi oldukça basittir ve bu kodların doğru bir şekilde oluşturulması, Entity Framework ile veritabanına bağlanırken sorun yaşamamanız için son derece önemlidir.


Uygulamada Birden Fazla Veritabanı Kullanımı

Entity Framework, birden fazla veritabanı kullanılarak oluşturulmuş olan uygulamalarda birden fazla veritabanına bağlanma imkanı sunar. Böylece, farklı veritabanlarına ait bilgilere erişmek mümkün hale gelir.

Birden fazla veritabanı kullanımı için, ilk olarak DbContext sınıfı yerine kendi DbContext sınıfınızı oluşturmalısınız. Bu sınıf, kendi veritabanı tablolarınızı ve bağlantı bilgilerinizi belirleyeceğiniz bir yer olacaktır.

Ayrıca, birden fazla veritabanı için bağlantı dizesi tanımlamanız gerekmektedir. Bunun için, veritabanı bağlantı dizelerinin yer aldığı bir yapılandırma dosyası oluşturmanız gerekmektedir. Ardından, Context sınıfında bu yapılandırma dosyasından hangi bağlantı cümlesini kullanacağınızı belirtebilirsiniz.

Bağlantı Dizeleri Bağlantı Cümlesi
Veritabanı1ConnectionString Data Source=ServerName;Initial Catalog=Veritabani1;Integrated Security=True;
Veritabanı2ConnectionString Data Source=ServerName;Initial Catalog=Veritabani2;Integrated Security=True;

Ardından, Context sınıfınızda, veritabanına bağlantı için gerekli olan bağlantı cümlesini belirtebilirsiniz. Bu sınıfta, DbSet nesneleri aracılığıyla veritabanında yer alan tablolara erişebilirsiniz.

  • Veritabanı1 ile çalışmak istiyorsanız:
    public class Veritabani1Context : DbContext
    {
    public Veritabani1Context() : base("Veritabanı1ConnectionString")
    {}
    public DbSet Tablo1Listesi { get; set; }
    }
  • Veritabanı2 ile çalışmak istiyorsanız:
    public class Veritabani2Context : DbContext
    {
    public Veritabani2Context() : base("Veritabanı2ConnectionString")
    {}
    public DbSet Tablo2Listesi { get; set; }
    }

Birden fazla veritabanı kullanırken, DbContext sınıflarınızda her bir veritabanı için farklı DbSet nesneleri tanımlayabilirsiniz. Böylece, her veritabanı için ayrı ayrı kullanabileceğiniz farklı tablo listelerine erişebilirsiniz.