Ana içeriğe atla

Ado.Net Entity Framework – Entity Model ile Windows Form Uygulamaları ve Bug

Veri tabanı ile ilişkisel olarak yapmış olduğumuz işlemleri Ado.Net Entity Framework ile yaptığımızda çok daha hızlı ve kolay bir şekilde yapabilinmesi mümkündür. Ne kadar basit yapılabileceğine ilişkin basit bir örnek verelim.

Visual Studio 2008 ile Windows From projesi oluşturuyor ve sonrasında entity data model template ‘ini projeye ekliyoruz. edmx ‘in içerisine gerekli olan tabloları ekledikten sonra işlemleri yapmaya başlayabiliriz.

Windows Formun üzerine aşadağıdaki kontrolleri ekliyoruz.

Windows Form

Tasarımı oluşturduktan sonra aşağıdaki kodları ekliyoruz.

using System;
using System.Windows.Forms;
using System.Data.Objects;
using System.Data.Objects.DataClasses;

namespace CourseManager
{
    public partial class CourseViewer : Form
    {
        public CourseViewer()
        {
            InitializeComponent();
        }
        private SchoolEntities schoolContext;
        private void closeForm_Click(object sender, EventArgs e)
        {
            schoolContext.Dispose();
            this.Close();
        }

        private void CourseViewer_Load(object sender, EventArgs e)
        {
            schoolContext = new SchoolEntities();
            ObjectQuery<Department> departmentQuery = schoolContext.Department.Include("Course").OrderBy("it.Name");
            try
            {
                this.departmentList.DisplayMember = "Name";
                this.departmentList.DataSource = departmentQuery;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void departmentList_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                Department department = (Department)this.departmentList.SelectedItem;
                courseGridView.DataSource = department.Course;
                courseGridView.Columns["Department"].Visible = false;
                courseGridView.Columns["CourseGrade"].Visible = false;
                courseGridView.Columns["OnlineCourse"].Visible = false;
                courseGridView.Columns["OnSiteCourse"].Visible = false;
                courseGridView.Columns["Person"].Visible = false;

                courseGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void saveChanges_Click(object sender, EventArgs e)
        {
            try
            {
                schoolContext.SaveChanges();
                MessageBox.Show("Changes saved to the database");
                this.Refresh();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}

Yukarıdaki kod bloglarını da projeye ekledikten sonra projemizi çalıştırdığımız aşağıdaki gibi bir görünüme sahip olacağız.

Debugging Windows Form

Evet herşey güzel gözüküyor.

Peki, bug nerede?

            {
                Department department = (Department)this.departmentList.SelectedItem;
                courseGridView.DataSource = department.Course;
                courseGridView.Columns["Department"].Visible = false;
                courseGridView.Columns["CourseGrade"].Visible = false;
                courseGridView.Columns["OnlineCourse"].Visible = false;
                courseGridView.Columns["OnSiteCourse"].Visible = false;
                courseGridView.Columns["Person"].Visible = false;

                courseGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
            }
Veri tabanında yer alan tabloların gözükmemesi için görünebilirliğini pasif yapıyoruz. Ancak bu işlem esnasında yanlışlıkla CourseGrade yerine CourseGrades yazdım ve karşımıza aşağıdaki gibi bir sonuç çıkmıştır.

EntityBug

Dikkat ederseniz yanlış yazdığımız bölüm sonrası kapatmış olduğumuz bütün tablo isimleri gözükmüştür.

Ancak her ne olursa olsun Entity Framework ‘ün uygulamalarımıza kattıkları oldukça fazladır. Bu tür Bug ‘lar da .Net Framework ‘ün tamamlanması ile büyük ihtimal ortadan kalkacaktır.

Eğer ki sizler de bu tür buglar keşkefederseniz www.connect.microsoft.com adresinden hata merkezine belirtebilirsiniz.

Umarım yararlı olabilmiştir.

Yorumlar

Bu blogdaki popüler yayınlar

SharePoint 2010 - Content Query for Blog Posts

I hope this post will help many of you feel comfortable with using the Content Query Web Part. In this post I will walk you through the process of creating a content query web part and configuring it to show custom field types. I will also give details on how to use XSLT to stylize and format the data being pulled. I will be using the following scenario as an example. Say that you had a site collection with a top level publishing site. This publishing site would display a the most recent blog posts from all blog sites within its own site collection. To solve this problem we will use a Content Query Web Part and a customized ItemStyle.xsl using XSLT. Please note that the “SharePoint Server Publishing Infrastructure” needs to be enabled at the site collection to display the content query web part. Step 1: Add a Content Query Web Part to Page Navigate to the site that you want the blog posts to show up and click on edit page. Under Editing Tools in the Ribb

Microsoft .Net Framework 3.0 & 3.5 Full Download

.Net ile yazılım geliştiricilerin özelliklede Framework 3.x ile geliştirenlerin başlıca sorunu kurulum dosyası hazırladıklarında .Net Framework ‘ü kurmak için internete bağlanmalarıdır. Çünkü kurulum dosyaları 2-3 MB arasıdır. Yavaş internet kullanıcılarında ve kurumsal şirketlerde projelerin çok ama çok geç kurulmasına sebep olmaktadır. Bu sebepten ötürü sizlere .Net 3.x Framework ‘lerin tam kurulabilir paketlerinin linklerini sizlere sunuyorum. Umarım yararlı olur. Microsoft .NET Framework 3.5 Setup 32-bit version (Boyut(Size): ~200MB Microsoft .NET Framework 3.0 Setup 32-bit Version (Boyut(Size): ~50MB) 64-bit Version (Boyut(Size): ~90MB) Herkese iyi çalışmalar, kolay kurumlar diliyorum. :)

.Net 3.5 SP1 – Full Install Packages (Tam Kurulum)

.Net Framework 3.5 SP1 ‘i bilgisayarınıza kurmak istediğinizde normal şartlar altında Microsoft ‘un sitesinde 2.7 mb ‘lik bir dosya indirir ve kurulum işlemlerinizi bu dosya üzerinden yaparsınız. Ancak bu indirmiş oluğunuz dosya yaklaşık 220 mb ‘lik veriyi internetten indirerek kurulum yapmaktadır. İnternet çıkışına izin verilmeyen kurumlar ve kuruluşlar için bu durum bir sıkıntı oluşturmaktadır. Bu sebepten ötürü aşağıdaki link yardımı ile tam yükleme paketini indirdikten sonra hiç internet ihtiyacınız olmadan .Net 3.5 SP1 ‘i kurabilmeniz mümkün olacaktır. Link