CASTLE+LINQ=F1

Posted on

Setelah beberapa lama belum sempat mencoba fitur-fitur dari .NET 3.5 karena kesibukan yang ada , akhirnya ada waktu juga buat mencobanya. Castle yang aku pakai sehari-haripun masih Castle RC 2. Sekarang aku mulai mencoba semuanya. Castle RC 3 dan LINQ. Rupanya ada beberapa methode tambahan di ActiveRecordBase-nya Castle RC 3. Seperti SaveCopy dan SaveUpdateCopy yang di release sebelumnya belum ada. Ok deh berarti sudah sama dengan ISession-nya NHibernate.

Sekarang saatnya untuk mencicipi LINQ. Ak coba dengan sampel sederhana….

string[] str = new string[] { “hello semua”, “hello kamu”, “hello tika” };

var items = from s in str where s.Substring(s.Length – 1, 1) == “a” select s;

foreach (var itm in items)

{

MessageBox.Show(itm);

}

Hemmm…menarik. Melakukan query di Array (memori). Di project-project sebelumnya masalah query adalah masalah yang agak menganggu ketika mau mengimplementasikan ActiveRecord secara total di aplikasi kita. HQL (Hibernate Query Language) kadang tidak sesuai dengan keinginan kita, akhirnya kembali ke selera asal pake SQL (he..hee..).

Let’s go to solve my real problem….ak coba me-recoding organization structure yang akan ditampilkan di treeview. Sekarang lihat hasilnya…

public static void LoadData(System.Windows.Forms.TreeView tvw )

{

tvw.Nodes.Clear();

Organization[] org = Organization.FindAll();

Organization[] Org1 = org.Where(s => s.ID.Length == 2).ToArray<Organization>();

System.Windows.Forms.TreeNode node=new System.Windows.Forms.TreeNode();

foreach (Organization o in Org1)

{

//System.Windows.Forms.MessageBox.Show(o.Name);

System.Windows.Forms.TreeNode curNode = tvw.Nodes.Add(“1”, o.Name);

curNode.Tag = o;

curNode.EnsureVisible();

curNode.ExpandAll();

CreateNodes(curNode, org, o);

}

}

private static void CreateNodes(System.Windows.Forms.TreeNode nodeParent, Organization[] orgs, Organization orgObj)

{

Organization[] Org = orgs.Where(s => s.ID.StartsWith(orgObj.ID)).ToArray<Organization>();

System.Windows.Forms.TreeNode curNode=null ;

foreach (Organization o in Org)

{

if (o.ID != orgObj.ID)

{

curNode = nodeParent.Nodes.Add(o.Name);

curNode.Tag = o;

curNode.EnsureVisible();

CreateNodes(curNode, orgs, o);

}

}

}

Awal yang indah… tanpa harus melakukan query lagi ke database saya bisa mengolah data yang sudah diambil sebelumnya. Cukup mengambil object Organization yang sudah berupa Array kemudian diolah dengan LINQ. Jadi deh…..

Iklan

Satu respons untuk “CASTLE+LINQ=F1

    lonkay said:
    Maret 5, 2009 pukul 1:46 am

    busedd… tuing2.. bahasa apa tu?? kram otak

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.