ASP.NET ile MySQL ilişkisel veritabanına bağlanarak Entity Model oluşturmak ve Linq ile kullanmak |
||||||
Linq teknolojisini sadece SQL Server ile değil Mysql Server ile de kullanabiliyoruz. Bu yazımda önce Mysql veritabanında ilişkisel iki adet tablo yaratacağız daha sonra Visual Studio (ya da Express Edition) ile ADO.NET Entity Data Model'ini kullanarak Linq ile veritabanında ilişkisel veritabanı mantığında sorgular çalıştıracağız. İşe başlamadan önce Mysql veritabanını kurduğunuzu varsayıyorum. Eğer Visual Studio ya Express Edition kurup Mysql sunucusu kurmadıysanız MySQL Community Server 5.1.44 adresinden indirip kurabilirsiniz. İlişkisel veritabanı modeli kullanacağımız için tablonun alanlarını buna göre dizayn edeceğiz. İlişkisel veritabanı nedir bilmiyorsanız ilgili yazımı buradan okuyabilirsiniz. İlk olarak Mysql veritabanında ilişkisel tablolarımızı oluşturacak Sql kodumuzu yazıp çalıştıralım: CREATE TABLE IF NOT EXISTS takimlar ( ID int(11) NOT NULL AUTO_INCREMENT, Takim_Adi varchar(30) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, Takim_Teknik_Direktor varchar(30) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, PRIMARY KEY (ID) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS oyuncular ( ID int(11) NOT NULL AUTO_INCREMENT, Oyuncu_Adi varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, Oyuncu_Takim_ID int(11) NOT NULL, PRIMARY KEY (ID), KEY Oyuncu_Takim_ID (Oyuncu_Takim_ID), FOREIGN KEY (Oyuncu_Takim_ID) REFERENCES takimlar (ID) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 'takimlar' adındaki tabloya takımın ismi ve teknik direktör ismi girilecek. 'oyuncular' adındaki tabloya referens aldığı takımın oyuncuları girilecek. Ben bu tablolara manuel olarak, tek tek, örnek olması için aşağıdaki gibi girdim (tabloları içerecek MySQL veritabanına 'test' adını verdim, siz istediğiniz gibi isimlendirebilirsiniz ) : ![]() takimlar tablosu ![]() oyuncular tablosu Şimdi Visual Studio (ya da Express Edition) ile yeni bir web projesi oluşturduktan sonra aşağıdaki adımları izleyelim: Önemli Not: Eğer ADO.NET Entity Data Model seçeneğini görmüyorsanız VS Service Pack'i indirmemişsiniz demektir. Kurmadıysanız buradan indirip kurabilirsiniz. Ayrıca MySQL veritabanına Visual Studio ya da Express Edition ile bağlanbilmek için MySQL ADO.NET sürücüsüne ihtiyacınız olacak, indirmek için : ADO.NET driver for MySQL ![]() App_Code klasörüne sağ tıklayıp "Add New Item" seçeneğini seçiyoruz . ![]() "ADO.NET Entity Data Model" i seçiyoruz. ![]() Veritabanından modeli direk oluşturmak için "Generate from database" i seçiyoruz. ![]() "New Connection" tuşuna bastıktan sonra Data source'u MySQL Database olarak ayarıyoruz sonra sunucu ismini ve bağlantı parametrelerini girip bağlantımızı tamamlıyoruz ![]() Sunucuya bağlanırsa yukarıdaki gibi bir sonuç çıkacaktır. Next tuşuna basıp devam ediyoruz. ![]() Burada Data Modeli oluşturulacak tablolaları seçiyoruz. Finish tuşuna basıp Data Entity Model'imizi oluşturuyoruz. ![]() Sonunda ilişkisel modelimizi oluşturduk. (Test.edmx, testEntities vs.) App_Code klasöründe Test.edmx ve ona ait code behind dosyası oluşturğunu göreceksiniz. Bu bizim ilişkisel veritabanımızın modelini içeriyor. Şimdi projemize boş bir .aspx sayfası ekleyip code behind dosyasına aşağıudaki kodu yazalım ve oluşturduğumuz ilişkisel modeli kullanarak Linq sorgularını çalıştıralım. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using testModel; // Modelimizi içeren namespace'imiz public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // Tüm modeli içeren testEntities class'ını oluşturuyoruz. // Not : testEntities class'ı veritabanı bağlantısını otomatik // olarak gerçekleştirdiğinden bağlantı için ayrı bir statement yazmıyoruz. testEntities db = new testEntities(); // Linq sorgumuzu yazıyoruz. Bu sorguda Takımı Galatasaray // olan oyuncuları veritabanından select ediyoruz. // Farkındaysanız modelimiz ilişkisel veritabanına göre ayarlandığı için // tabloları birleştirmek için herhangi bir komut eklemedik (join on gibi). var oyuncular = from t in db.takimlar from o in t.oyuncular where t.Takim_Adi=="Galatasaray" select new { o.Oyuncu_Adi, t.Takim_Adi } ; // Seçilen her satırı foreach döngüsü ile ekrana bastırıyoruz. foreach (var o in oyuncular ) Response.Write( o.Oyuncu_Adi+","+o.Takim_Adi+"<br/>"); } } Dosyayı kaydedip projeyi Run ettikten sonra aşağıdaki gibi bir sonuç alacağız : ![]() Örneğimizi bitirdik. Linq ile ilgili örnekleri buradan bulabilirsiz. |
||||||
|
||||||
|
July 2010 (1)
April 2010 (4)
March 2010 (1)
February 2010 (3)
December 2009 (2)
November 2009 (1)
October 2009 (4)
September 2009 (16)
August 2009 (21)
July 2009 (4)
Essential C# 3.0 E-boo ..
XAMPP ile PEAR MDB2 Pa ..
Sitenizin arama motorl ..
PHP ile JSON verisi ya ..
Java Mobile 3D Oyun Pr ..
PHP Pear MDB2 modülü i ..
Bir Tasarım Şablonu: S ..
MySql veritabanı bağla ..
Online SMS Gateway ve ..
Etiketler
| Arama-merkezi | Arama-onerisi | Arama-sonuçları | Asp.net | Auto-complete | Div | Dosya | Erişim | Flv | Google | Html-parse | Http-session | Javascript | Jquery | Jquery-selector | Jquery-ve-seçiciler | Json | Jsonencode | Kullanıcı | Otomatik-tamamlama | Php | Script | Url-rewriting | Veri-oluşturma | Web-sunucusu |arama
sosyal




