Projeye sağ tıklayıp Add, New Item dan Code First ekleyelim. Adımlar aşağıdaki gibidir.
Örnekte 2 Class olacak bunlar Kitap ve Yazar Sınıflarıdır.
ilk olarak projeye sağ tıklayıp Kitap isimli classı oluşturalım. Bu oluşturacağımız Kitap classı kodlama bittikten sonra Datebase tarafında bir tablo olarak oluşacaktır. Örneğe göre her kitabın bir yazarı olacağından Yazar isimli bir class olacak ve Kitap classı ile Yazar classı arasında ilişki kurmamız gerekecek. Bu sebeple classın içerisine bir de Yazar tipinde bir property ekleyelim.Kitap Classı aşağıdaki gibidir:
public class Kitap
{
public int KitapId { get; set; }
public int YazarId { get; set; }
public string Adı { get; set; }
public string BasımYılı { get; set; }
public virtual Yazar Yazar { get; set; }
}
Daha sonrasında Yazar isimli class oluşturalım. Bir yazarın birden fazla kitabı olabileceğinden Yazar ile Kitap arasında bire çok ilişki var diyebiliriz. Bu sebeple Yazar classına Kitaplar isimli propertyi ICollection olarak tanımlamalıyız.
Yazar Classı aşağıdaki gibidir:
public class Yazar
{
public int YazarId{ get;set; }
public string Adi{ get;set; }
public string Soyad{ get; set; }
public virtual Icollection Kitaplar{ get; set; }
}
Daha sonra oluşturduğumuz entitylerin DbSet lerini oluştururuz. Bu Dbsetlerin her biri tablolar ile Get/Add/Remove/Update/ gibi işlemleri üzerinden yapacağımız yapılardır.Diğer önemli nokta da classın constructor ile üst classa göndereceğimiz string("name=EFFirst"). Bu string bizim connectionName imiz olacaktır.
DbSet leri de yazdıktan sonra Formun Load kısmında tablolara herhangi bir eklem yapmıyorsanız Initialize true yapmalısınız.Tabloya herhangi bir şey eklemediğim için aşığadaki kodaları Formun load kısmına ekledim.
private void Form1_Load(object sender, EventArgs e)
{
using (var ctx = new Data.EFFirst())
{
ctx.Database.Initialize(true);
}
}
projeyi artık çalıştırabiliriz.Sonucunda da Databasete tablolar aşağıdaki gibi oluşmuştur.
Hiç yorum yok:
Yorum Gönder