Merhaba Arkadaşlar,

Bu yazımda C# ile MySql arasında bağlantı kurup örnek CRUD işlemlerini anlatmaya çalışacağım.

Yöntem olarak C# ile MySql arasında bağlantı kurma yöntemlerinden Fluent Nhibernate ORM aracını kullanacağım.

İlk olarak Visual Studio’da File > New Project diyerek yeni proje oluşturuyoruz.

Paket Kurulumları

Nhibernate’i kullanabilmemiz için gerekli olan paketleri Package Manager Console üzerinden kuruyoruz.

Visual Studio Package Manager Console
Visual Studio Package Manager Console

Install-Package NHibernate -Version 5.2.0

Install-Package FluentNHibernate -Version 2.1.2

Install-Package MySql.Data -Version 8.0.13

Helper Sınıflarının Yazılması

İhtiyacımız olan paketleri başarılı kurduktan sonra Helper kısmına geçiyoruz.

Fluent Nhibernate birçok veri tabanını desteklemektedir (MS SQL, MYSQL, ORACLE , SQLITE vb). Biz de My Sql’i kullanabileceğimiz Helper dosyamızı geliştireceğiz. Ama öncesinde Ana helper sınıfımızı oluşturup MySqlHelper ve diğer helper’lar için ortak olan özellikleri belirleyeceğiz.

NhibernateHelper Sınıfının kodları aşağıdaki gibidir.

NhibernateMySql sınıfından miras alarak MySqlHelper sınıfımı oluşturuyorum.

Bu işlemleri yaptıktan sonra config dosyamızda connection bilgilerini tanımlıyoruz. Bu kısımda MySql veri tabanının hazır olduğunu düşünerek devam ediyorum. Eğer local ortamda çalışıyorsanız sadece sunucu kısmına localhost yazıp User Id ve password alanlarını silebilirsiniz

Bu yazı özelinde aşağıdaki gibi basit bir tablo yapısı oluşturdum.

Şimdi de veri tabanındaki tablolara karşılık gelecek sınıflarımızı oluşturuyoruz.

Her sınıfımızın bir da Map sınıfı olmalıdır. Bu sınıfta tablomuza ait özellikleri belirtiyoruz. Örneğin: Tablo adı, kolon isimleri, uzunlukları, tablolar arasındaki ilişkiler vs.

Tablomuzu ve map sınıflarımızı oluşturduktan sonra artık CRUD (Create, Read, Update ve Delete) işlemlerini yapmaya hazırız.

Sonuç

Bu yazımda basit bir şekilde Fluent Nhibernate ORM aracını nasıl kullanabileceğimizi anlatmaya çalıştım. İlerleyen yazılarımda da daha detaylı konularada girmeye çalışacağım.

Sormak istediğiniz soru olursa yorum bölümünden sorabilirsiniz.

İyi günler dilerim.