Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

Partial sınıfların gücü (Entity Framework)

Merhabalar arkadaşlar.
Partial(parçalı) sınıflar fiziksel olarak farklı dosyalarda aynı sınıf ismiyle oluşturulan ve çalışma zamanında compiler tarafından birleştirilen sınıflardır. Sınıflarda olduğu gibi struct ve interface’lerde de aynı şeyi yapabiliriz.

public partial class Employee
{
    public void DoWork()
    {
    }
}

public partial class Employee
{
    public void GoToLunch()
    {
    }
}

Yukardaki örnekte 2 farklı cs dosyasında tek bir sınıfın farklı metodları tanımlanmıştır. Bu yapı özellikle tek sınıf üzerinde çalışacak birden fazla kişinin aynı anda çalışabilmesini kolaylaştırmaktadır. Partial sınıfları kısaca tanıdıktan sonra asıl anlatmak istediğim konuya gelelim.
Örneğin projenizde Entity Framework kullanıyorsunuz ve veritabanında FirstName ve LastName isminde ayrı ayrı kolonlarınız var ancak kod içerisinde bu alanları birleştirerek FullName olarak da kullanmak istiyorsunuz diyelim. Bu noktada partial sınıflardan faydalanabiliriz.

public partial class Employee
{
public string FullName
{
get
{
using (DataContext ctx = new DataContext())
{
Employee emp = ctx.Employees.SingleOrDefault(c => c.ID == this.ID);
StringBuilder sb = new StringBuilder();
sb.Append(emp.Firstname);
sb.Append(" ");
sb.Append(emp.Lastname);
return sb.ToString();
}
 }
}

Abartıp bir partial class daha ekleyelim.

public partial class Employee
{
    public decimal Salary
    { get { return Hours*Wage; } }
}

Entity framework sınıfları bunu yapmamıza olanak sağlıyor çünkü o da bütün sınıflarını partial olarak oluşturuyor.

Herkese iyi günler dilerim.
Reklamlar

Mart 21, 2012 - Posted by | C# | , , ,

Henüz yorum yapılmamış.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s