Apakah anda telah ketagihan dengan teknologi LINQ dan ingin terus menggunakannya meskipun DBMS yang digunakan dalam project anda bukan SQL Server ? Tenang DbLinq telah hadir untuk anda (*dah kayak iklan aja*).

DbLinq adalah sebuah project dibawah MIT License, jadi artinya sourcenya juga dikasih dan bebas dipake. Project ini bertujuan untuk menyediakan provider LINQ untuk DBMS-DBMS diluar SQL Server, tercatat ada 5 DBMS yang providernya disediakan oleh DbLinq yaitu :

1. Ingres

2. MySql

3. Oracle

4. PostgreSQL

5. SqlLite

Kemudian yang menarik adalah dukungan untuk mengenerate stored procedure pun telah ada dalam provider ini. Okeh karena tangan ini sudah gatal ingin mencoba maka mari kita lakukan operasi CRUD dengan menggunakan LINQ terhadap DBMS MySql dengan make provider ini.

1. Pertama-tama unduh terlebih dahulu source dari DbLinq disini (menarik ya? dihostingnya di google code, kok gak di codeplex?)

2. Setelah beres diunduh, silahkan extract dan buka “DbLinq.sln” lalu build project tersebut.

3. Setelah selesai di build maka silahkan buka folder DbMetal\bin pada folder project tersebut.

4. Disini anda akan menemukan sekumpulan dll yang menjadi provider dari DBMS2x yang didukung dan sebuah file berekstensi exe dengan nama DbMetal.exe

5. File DbMetal.exe tersebut fungsinya sama dengan SQLMetal yang umum digunakan jika kita ingin mengenerate kelas entitas yang mewakili tabel2x di database kita. Sekedar info DbLinq ini belum terintegrasi sama Visual Studio, jadi kita belum bisa memanfaatkan Object Relational Designer untuk menggenerate kelas entitas  untuk DBMS seperti MySql,Postgre, dll. Satu-satunya cara adalah dengan menggunakan DbMetal, tapi gak sulit kok, silahkan lanjutkan langkah2x ini untuk melihat kemudahan penggunaannya.

6. Silahkan buka command promt dan navigasi ke folder tempat file DbMetal.exe berada.

7. Sekarang kita akan menggenerate kelas entitas untuk sebuah database yang ada dalam DBMS MySQL (DBMS favorit para programmer PHP). Cara penggunaannya cukup mudah seperti contoh dibawah :

DbMetal.exe /server:<nama server> /user:<nama user> /pass:<password> /database:<nama database> /provider:MySql /code:<nama file kelas entitas yang ingin dihasilkan>

image

8.  Tampilan seperti gambar diatas akan muncul jika anda telah mengeksekusi DbMetal.exe, kemudian silahkan cek file yang digenerate oleh DbMetal.exe, akan tampak mirip dengan file yang dihasilkan oleh SqlMetal atau Object Relational Designer bukan?

9. Sekarang adalah saatnya kita test drive dengan membuat sebuah project sederhana. Silahkan buka Visual Studio dan buat sebuah project dengan tipe console.

10. Tambahkan file yang telah anda generate tadi ke dalam project.

11. Tambahkan 3 dll ini kedalam reference project anda (dll tersebut ada didalam folder DbMetal\bin di folder source dari DbLinq)

1. DbLinq.dll

2. DbLinq.MySql.dll

3. MySql.Data.dll

12. Kemudian ketikkan kode berikut pada fungsi main di project tersebut.

   1: string connectionString = String.Format("server={0};user id={1}; password={2}; database={3}"
   2:     ,"localhost","root","pass","osnsys");
   3: OsNSys data = new OsNSys(new MySqlConnection(connectionString));
   4: var query = from m in data.SysSoALEssay
   5:             where m.ID == 3
   6:             select m.SoAL;
   7: foreach (var res in query)
   8:     Console.WriteLine(res);
   9: Console.ReadKey();

Catatan :

Silahkan ganti nama server, user, password dan nama database sesuai dengan lingkungan anda. Kemudian query pada baris ke 4-6 pun silahkan diganti2 sesuai selera😀

13. Tekan F5 dan Voila, anda telah berhasil menggunakan LINQ untuk beroperasi terhadal MySQL, so slogan “Apapun datanya mengoperasikannya tetap pake LINQ” kayaknya berlaku :d

sumber : netindonesia