Cara bekerja dengan Fluent NHibernate di C #

ORM (pemeta relasional objek) menyederhanakan akses data dalam aplikasi Anda dengan memungkinkan Anda menulis kode untuk melakukan operasi CRUD (Buat, Baca, Perbarui, dan Hapus). Framework ORM telah digunakan sejak lama untuk menghilangkan ketidaksesuaian impedansi yang ada antara objek dan model data dalam aplikasi. Intinya, ORM memungkinkan Anda menulis kode untuk melakukan operasi CRUD tanpa perlu berinteraksi dengan penyedia database yang mendasarinya secara langsung. Jadi, penggunaan ORM membantu Anda mengisolasi model objek aplikasi Anda dari model data.

Mengapa Fasih NHibernate?

NHibernate menyimpan informasi pemetaan dalam format XML dalam file .hbm - Anda harus memiliki satu file .hbm untuk setiap kelas entitas. File .hbm ini digunakan untuk memetakan entitas ke tabel database terkait. Dalam menggunakan Fluent NHibernate, Anda tidak perlu lagi menggunakan file .hbm.xml yang merepotkan yang harus Anda gunakan saat bekerja dengan NHibernate.

Fluent NHibernate adalah mitra aman yang dikompilasi dan dikompilasi secara statis dari alat ORM NHibernate yang populer yang dapat digunakan untuk membuat pemetaan antara kelas POCO dan mesin NHibernate tanpa memerlukan file XML yang rumit. Ini menyediakan Fluent API juga memungkinkan Anda menggunakan LINQ untuk meminta data di atas mesin NHibernate. Pada bagian selanjutnya, kita akan membahas bagaimana kita dapat menginstal Fluent NHibernate, membuat model, memetakan model atau kelas entitas ini dan menggunakan Fluent NHibernate untuk melakukan operasi CRUD.

Mulai

Untuk mulai menggunakan Fluent NHibernate, ikuti langkah-langkah berikut:

  1. Buka Visual Studio 2015 IDE
  2. Klik File -> New -> Project
  3. Buat proyek baru - demi kesederhanaan, buat Aplikasi Windows
  4. Tentukan nama untuk proyek tersebut
  5. Klik OK untuk menyimpan proyek

Sekarang proyek telah dibuat di Visual Studio, Anda mungkin ingin menginstal Fluent NHibernate untuk menggunakannya di aplikasi Anda. Jika Anda telah menginstal NuGet, opsi termudah adalah menginstal Fluent NHibernate melalui NuGet Package Manager. Untuk melakukan ini, pilih proyek di Jendela Solution Explorer, klik kanan dan pilih opsi "Kelola Paket NuGet…" untuk menginstal kerangka kerja Fluent NHibernate dari NuGet.

Bekerja dengan Fluent NHibernate

Untuk bekerja dengan Fluent NHibernate, Anda harus terlebih dahulu membuat kelas model. Perhatikan tabel database berikut.

CREATE TABLE [dbo].[Product]

(

   [Id] INT NOT NULL PRIMARY KEY,

   [Name] VARCHAR(50) NULL,

   [Description] VARCHAR(50) NULL

)

Berikut kelas model yang sesuai.

public class Product

   {

       public virtual int Id { get; set; }

       public virtual string Name { get; set; }

       public virtual string Description { get; set; }

   }

Sekarang setelah tabel database dan kelas model yang sesuai sudah siap, langkah selanjutnya adalah membuat pemetaan yang diperlukan. Untuk memetakan entitas di Fluent NHibernate, Anda harus memiliki kelas pemetaan yang sesuai. Kelas pemetaan tersebut harus berasal dari ClassMap di mana T mewakili entitas yang Anda gunakan. Fluent NHibernate menggunakan kelas C # yang diketik dengan kuat untuk memetakan properti kelas model ke bidang yang sesuai dari tabel database.

Inilah kelas pemetaan bernama ProductMap.

public class ProductMap : ClassMap

   {

       public ProductMap()

       {

           Id(x => x.Id);

           Map(x => x.Name);

           Map(x => x.Description);

           Table("Product");

       }

   }

Langkah selanjutnya adalah membuat kelas pembantu untuk terhubung ke database kita. Seperti inilah kelas ini akan terlihat:

public static class FluentNHibernateHelper

   {

       public static ISession OpenSession()

       {

string connectionString = "Write your database connection string here";

           ISessionFactory sessionFactory = Fluently.Configure()

               .Database(MsSqlConfiguration.MsSql2012

                 .ConnectionString(connectionString).ShowSql()

               )

               .Mappings(m =>

                         m.FluentMappings

                             .AddFromAssemblyOf())

               .ExposeConfiguration(cfg => new SchemaExport(cfg)

                .Create(false, false))

               .BuildSessionFactory();

           return sessionFactory.OpenSession();

       }

   }

Perhatikan panggilan ke sessionFactory.OpenSession () di pernyataan terakhir - panggilan ini sebenarnya membuat sesi komunikasi dengan database yang mendasarinya, yaitu membuka koneksi ke database yang digunakan. Sekarang Anda bisa menjalankan metode statis FluentNHibernateHelper.OpenSession () untuk membuka koneksi ke database. Cuplikan kode berikut mengilustrasikan bagaimana Anda dapat memanfaatkan kelas helper yang dibuat sebelumnya untuk menambahkan data Produk ke tabel database Produk.

static void Main(string[] args)

       {

           using (var session = FluentNHibernateHelper.OpenSession())

           {

               var product = new Product { Name = "Lenovo Laptop", Description = "Sample product" };

               session.SaveOrUpdate(product);

           }

       }

Potongan kode berikut menunjukkan bagaimana Anda dapat menanyakan data dari database menggunakan kelas pembantu Fluent NHibernate kami.

using (ISession session = FluentNHibernateHelper.OpenSession())

           {

               var products = session.Query().ToList();

               //Usual code

           }

Untuk bekerja dengan contoh kode yang diberikan dalam artikel ini, Anda harus memastikan bahwa ruang nama berikut telah ditambahkan ke kelas Anda.

  • menggunakan FluentNHibernate.Cfg;
  • menggunakan FluentNHibernate.Cfg.Db;
  • menggunakan NHibernate;
  • menggunakan NHibernate.Linq;
  • menggunakan NHibernate.Tool.hbm2ddl;
  • menggunakan System.Linq;

Anda dapat mempelajari lebih lanjut tentang bekerja dengan Fluent NHibernate dari GitHub.