Ana Sayfa » Code Generator ve ORM » Entity Framework » ADO.NET Entity Framework Giris

ADO.NET Entity Framework Giris

 Bu makalemizde Microsoftun ORM araçlarindan Entity Framework yapisini kullanarak bir data modeli olusturacagiz ve bu model ile veritabanindan nasil select islemi yapacagimizi ögrenecegiz.

Entity Framework hakkinda teorik bilgileri internette bolca bulabilirsiniz bu yüzden bu konulara deginmeyi düsünmüyorum. Ilk olarak visual studio 2008 veya 2010 kullanarak yeni bir websitesi olusturalim. Olusturdugumuz web sitesine asagidaki gibi bir “entity framework data model” ekleyelim.

 

Yukarida gördügünüz gibi ADO.NET Entity Data Model’i seyiyoruz ve bir isim veriyoruz. Daha sonra add deyip diger adima geçiyoruz.

Biz bu örnegimizde modelimizi var olan bir veritabani üzerinden olusturacagiz. Tam aksine önce modeli olusturup EntityFramework’ün veritabanini kendisinin olusturmasini saglayabiliriz. Next dedikten sonra gelen ekranda “new connection” deyip asagidaki ekranda gördügümüz gibi var olan bir veritabani için connection olusturuyoruz.

 

Örnegimizde AdventureWorks veritabanini kullaniyoruz.

Baglanti ayarlarimiz yaptigimiz zaman yukaridaki ekranda bu baglanti bilgisi için web.config dosyasinda kullanilacak ismi belirleyip next diyoruz.

Gelen yukaridaki ekranda “Tables” sekmesini seçip kullanacagimiz tablolari seçiyoruz. Biz örnegimizde Product , productCategory ve productSubCategory tablolarini kullaniyoruz. Bu adimda Finish dedigimiz zaman modelimiz kullanilmaya hazir hale gelecek. Modelimizin görüntüsü asagidaki gibi olacaktir.

 

 

Simdi gelelim bu modeli kullanarak veritabanindan nasil veri çekecegimize.

Default.aspx sayfasina bir iki adet dropdownlist ve bir adette gridview ekleyelim. Sayfamizin html kismi asagidaki gibi olacak.

<table>

    <tr>

        <td>

            <asp:DropDownList ID="KategoriDropDownList" AutoPostBack="true" runat="server" OnSelectedIndexChanged="KategoriDropDownList_SelectedIndexChanged">

            </asp:DropDownList>

        </td>

        <td>

            <asp:DropDownList ID="AltKategoriDropDownList" runat="server">

            </asp:DropDownList>

        </td>

        <td>

            <asp:Button ID="UrunleriGetirButton" runat="server" Text="Ürünleri Getir" OnClick="UrunleriGetirButton_Click" />

        </td>

    </tr>

    <tr>

        <td colspan="3">

            <asp:GridView ID="UrunlerGridView" runat="server">

            </asp:GridView>

        </td>

    </tr>

</table>

 

Simdi ilk olarak sayfa yüklenirken kategori dropdownlistini dolduralim. Kategori seçilincede alt kategorileri dolduralim.

Ilk olarak kategorileri doldurmak için asagidaki kodu yazin.

protected void Page_Load(object sender, EventArgs e)

{

    if (!IsPostBack)

    {

        KategorileriGetir();

    }

}

 

private void KategorileriGetir()

{

    DemoEntities entity = new DemoEntities();

    List<DimProductCategory> kategoriList = entity.DimProductCategory.ToList();

    KategoriDropDownList.DataSource = kategoriList;

    KategoriDropDownList.DataValueField = "ProductCategoryKey";

    KategoriDropDownList.DataTextField = "EnglishProductCategoryName";

    KategoriDropDownList.DataBind();

 

 

}

 

Ikinci olarak kategori seçildigi zaman asagidaki kodu yazarak alt kategorileri dolduralim.

protected void KategoriDropDownList_SelectedIndexChanged(object sender, EventArgs e)

{

    int KategoriKey = Int32.Parse(KategoriDropDownList.SelectedValue);

    DemoEntities entity = new DemoEntities();

 

    var query = from c in entity.DimProductSubcategory

                where c.DimProductCategory.ProductCategoryKey == KategoriKey

                select c;

 

    AltKategoriDropDownList.DataSource = query.ToList(); ;

    AltKategoriDropDownList.DataValueField = "ProductSubcategoryKey";

    AltKategoriDropDownList.DataTextField = "EnglishProductSubcategoryName";

    AltKategoriDropDownList.DataBind();

}

 

Yukaridaki adimlari tamamladigimiz zaman kategori ve alt kategori alanlari ile olan islemimiz bitmis oluyor. Simdi ise ürünleri getir butonuna basinca seçilen kategorideki ürünleri alip gridview içine atalim.

protected void UrunleriGetirButton_Click(object sender, EventArgs e)

{

    int AltKategoriKey = Int32.Parse(AltKategoriDropDownList.SelectedValue);

    DemoEntities entity = new DemoEntities();

 

    var query = from p in entity.DimProduct

                where p.DimProductSubcategory.ProductSubcategoryKey == AltKategoriKey

                select new { p.ProductKey, p.EnglishProductName, p.Color, p.TurkishDescription };

 

    UrunlerGridView.DataSource = query.ToList(); ;

    UrunlerGridView.DataBind();

}

 

Yukaridaki kodu inceleyecek olursaniz product tablosunda sadece istedigimiz kolonlari getirdik, bunun içinde new deyip yeni bir tanimlama yaptik.

Sonuç olarak islemlerin sonucunda asagidaki gibi bir ekran çiktimiz oldu.

 

Yazar Hakkında

Mehmet Sabri KUNT

Google Plus
Yazilim Mutfagi kurucu ve yöneticisidir. 2005 Selçuk Ünv Bilgisayar mühendisligi mezunudur. Telekomünikasyon sektöründe BI&DWH alanindan çalismaktadir.

Makale Sayısı : 116

ADO.NET Entity Framework Giris

53 yorum
yorumekle yorumekle Toplam 53 Yorum Yapılmış. Sizde yorum yazmak ve soru sormak için bu linki takip edin. -Forum sayfasına yönlendirileceksiniz-

Yorumlar