Asp.Net - Mvc Projesi Örneği - CodeFirst Tekniği
acikakademi.net üzerinden takip ettiğim eğitim videolarını uygulanmış ve kendimce daha açık halini paylaşıyorum.
MvcHaber Projesi Adımları:
-Asp.Net Mvc Projesi oluştur.
-Projenin adı MvcHaber
Boş bir veritabanı oluşturmak için:
-Models ( sağ click )
-Add
-New Item
-Data
-Ado.Net
-Empty Data
Buraya yazacağınız isim veritabanı isminizdir.
Biz MvcHaberDB veriyoruz.
// konulup yeşil olarak karşımıza gelen kod satırları örnek kod satırlarıdır.
Bizlerde sınıflarımızı oluştururken buradan örnekleyebiliriz.
*Prop yazınca satır kendini tamamlar.
*Id değil de id yazarsak eğer otomatik arttırma olmaz.
Projelerimizi oluştururken her zaman en küçük parçadan başlamalıyız.
Böylelikle bütünü oluşturabiliriz.
Şuan bu projede Haber - Yorum - Kategori var.
Kodları yazıyoruz.
using System.Collections.Generic;
public class Kategori
{
public int Id { get; set; }
public string KategoriAdi { get; set; }
}
public class Yorum
{
public int Id { get; set; }
public string Icerik { get; set; }
public DateTime Tarih { get; set; }
public Haber Haber { get; set; }
}
public class Haber
{
public int Id { get; set; }
public string Baslik { get; set; }
public string Detay { get; set; }
public Kategori Kategori { get; set; }
public ICollection<Yorum> Yorumlar { get; set; }
}
Kodları yazarken ICollection için sınıf tanımlanmasını istiyor.
ICollection<Yorum> için de Generic sınıfının tanımlanmasını istiyor.
şimdi üst tarafa satır : 17 , 18 çıkıyorum.
burada veritabanımda kullanacağım tabloları tanımlıyorum.
public virtual DbSet<Kategori> Kategori {get; set;}
public virtual DbSet<Yorum> Yorum { get; set; }
public virtual DbSet<Haber> Haber { get; set; }
Neden bu şekilde veritabanı ve tablo oluşturuyoruz?
Yarın öbür gün istersem codefirst tekniği ile tekrardan veritabanı ve tablolarımı oluşturmak isteyebilirim..
Şuan
Database
Tablolar
Sınıflar
hazır.
17,18. satırlarda MvcHaberDB olarak veritabanı adımızı görüyoruz.
şimdi Web.config dosyamızda MvcHaberDB yi buluyoruz.
Veritabanımızın ConnectionString i burada tanımlıdır.
Data Source= (local) ya da sadece =. olması yeterli.
Initial catalog kısmında da sadece MvcHaberDB olarak veritabanı adımızı yazsak yeterli.
Bu yaptığımız işlem kendi bilgisayarımızda bulunun Sql Server ımıza MvcHaberDB veritabanını ve bu yazdığımız tabloları oluşturmamızı sağlayacağız.
MsSql imiz var mı?
hanselman.com/blog/DownloadSqlServerExpress.aspx
'den
indirebiliriz.
Buradan SqlServer2014 Express indirebilirsiniz.
Verileri dolduracağımız sayfayı yazacağız şimdi.
-Controllers
-Add
-Controller
-Mvc 5 Controller - Empty
-HomeController
Home Controller oluşturduk ve Index Action 'u var.
Öncelikle DataDoldur diye bir method yapıcaz.
Adres satırına DataDoldur methodunu yazıp çağırdığımızda veritabanımız tablolarımız oluşacak.
İçerisindeki veriler gelecek.
DataDoldur fonksiyonunda using(MvcHaberDB) olarak database imizi tanımlıyoruz.
Sayfana sınıf ekle uyarısı geliyor.
Sayfamıza bu sınıfı ekletiyoruz.
DataDoldur fonksiyonunda kategorilerimizi oluşturduk.
Daha sonra yorum kaydettiricez.
public void DataDoldur()
{
using (MvcHaberDB dataBase = new MvcHaberDB())
{
//kategorilerimizi sırasıyla oluşturuyoruz
Kategori kategori1 = new Kategori(); // kategori1 isimli nesne daha önce oluşturduğum Kategori sınıfdan bir nesnedir diyorum.
kategori1.KategoriAdi = "Spor"; // kategori1 nesnesinin kategori adı spordur diyorum.
dataBase.Kategori.Add(kategori1); // kategori1 nesnemi kategori tabloma ekle diyorum.
Kategori kategori2 = new Kategori();
kategori2.KategoriAdi = "Ekonomi";
dataBase.Kategori.Add(kategori2);
Kategori kategori3 = new Kategori();
kategori3.KategoriAdi = "Magazin";
dataBase.Kategori.Add(kategori3);
Kategori kategori4 = new Kategori();
kategori4.KategoriAdi = "Haber";
dataBase.Kategori.Add(kategori4);
//yorumlarımızı oluşturduk
Yorum yorum1 = new Yorum();
yorum1.Icerik = "Dün akşam ki maç güzeldi";
yorum1.Tarih = DateTime.Today;
dataBase.Yorum.Add(yorum1);
Yorum yorum2 = new Yorum();
yorum2.Icerik = "Paran var mı Derdin var...";
yorum2.Tarih = DateTime.Today;
dataBase.Yorum.Add(yorum2);
Yorum yorum3 = new Yorum();
yorum3.Icerik = "Xyz Dün akşam koptu";
yorum3.Tarih = DateTime.Today;
dataBase.Yorum.Add(yorum3);
Yorum yorum4 = new Yorum();
yorum4.Icerik = "Bu galibiyetle şampiyon olduk.";
yorum4.Tarih = DateTime.Today;
dataBase.Yorum.Add(yorum4);
//haber tablomuzu oluşturuyoruz.
Haber haber1 = new Haber();
haber1.Baslik = "Yine Yendik";
haber1.Detay = "Türkiye Almanya'ya karşı yine zafere ulaştı";
haber1.Kategori = kategori1;
haber1.Yorumlar = new List<Yorum>();
haber1.Yorumlar.Add(yorum1);
haber1.Yorumlar.Add(yorum4);
dataBase.Haber.Add(haber1);
Haber haber2 = new Haber();
haber2.Baslik = "Akşam Eğlencesi";
haber2.Detay = "Ünlü xyz yine döktürdü";
haber2.Kategori = kategori3;
haber2.Yorumlar = new List<Yorum>();
haber2.Yorumlar.Add(yorum3);
dataBase.Haber.Add(haber2);
Haber haber3 = new Haber();
haber3.Baslik = "Parası olan düşünsün";
haber3.Detay = "Özel jet fiyatları arttı";
haber3.Kategori = kategori2;
haber3.Yorumlar = new List<Yorum>();
haber3.Yorumlar.Add(yorum2);
dataBase.Haber.Add(haber3);
dataBase.SaveChanges();//yaptığım bu işlemleri kaydet diyorum.
}
}
Şimdi kategori - yorum ve haberlerimizi oluşturduk.
Home klasörünün altına index sayfası oluşturuyoruz.
HomeController.cs sayfasında Public ActionResult Index kısmına sağ tıklayarakta ekleyebiliriz.
HomeController.cs sayfasından projeyi çalıştırıyoruz.
Tarayıcımızdan
http://localhost:52081/Home/DataDoldur
linkini çağırıyoruz.
ve Ms Sql den gidip kontrol ediyoruz.
Şimdi Data 'ları gösterme kısmına geçelim.
HomeControls sayfasında Index methodunun üzerinden bir index sayfası görünümü oluşturuyoruz.
Oluştururken Models 'imi ve veritabanımı seçerek ekledim.
Hazır gelen List sayfası yanında combobox ' a kategorilerimizi çektiriyoruz.
Burada veritabanımızı oluşturup Kategori tablosunda ki verileri topluyoruz.
Index sayfasında edit, details, delete olarak geliyor.
Listelettiğim ve Combobox a aktardığım verilerin görünümü bu sayfadaki gibidir.
Yorumlar
Yorum Gönder