logo
Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
bilgehanyildiz  
#1 Gönderildi : 26 Şubat 2015 Perşembe 10:17:40(UTC)
bilgehanyildiz

Sıralama: Member

Gruplar: Registered
Katılan: 25.02.2015(UTC)
Mesajlar: 12
Turkey
Konum: İstanbul

2 Mesajına Toplam 2 Kere Teşekkür Edildi.
1-)Entity Framework de,LLBLGEN,NHIBERNATE gibi bir ORM tooludur.Ancak Özelliği Microsoftun kendi orm toolu olduğu için Visual Studio 2008/2010 kurduğunuzda otomatik olarak gelmektedir.
İlk Önce Entity Frameworkdede nesneleri oluşturmamız gerekmektedir

UserPostedImage

2-)Bize ilk soracağı şey nesneleri databaseden modellemek istediğimiz,yoksa nesneleri kendimizin oluşturup sonradan mı database oluşturacağımıza karar vermemizdir.Empty model ise database vermeden kendimizin nesneleri oluşturması için kullanılır.Ancak daha sonra istersek tersine mühendislik yaparak databasemizi oluşturup connection bağlayabilirizAncak bizim veritabanımız zaten mevcut olduğu için Generate from database seçeneğini seçiyoruz.

UserPostedImage

3-)Bir sonraki adımda Connectionımızı belirliyoruz

UserPostedImage

4-)Bu adımda modellemek istediğimiz database nesnelerimiz seçiyoruz.Tabi hepsini aynı ayda oluşturmak zorunda değiliz istersek bir kısım tablo ve viewleri oluşturmayabiliriz veya sonradan oluşturabiliriz

UserPostedImage

5-)Artık contextimiz oluşmuş durumdadır

UserPostedImage

6-)Contextimizi oluşturduktan sonra model browserdan Özelliklerimize bakabiliyoruz

UserPostedImage


7-)Peki Veritabanımıza yeni bir tablo eklediğimiz zaman veya alan eklediğimizde bunları contexttimize nasıl yansıtırız.Örnek olarak Kisi Tablomuza yeni bir alan ekleyelim ve Kitap diyede yeni bir tablo ekleyelim.

Model Browserdan Model1.edmx in üstüne gelip sağ tuş dediğimizde

Update Model From Database diyoruz.Daha sonra açılan ekrandan veritabanımıza yeni eklenen tablo,view vs görüntüyebiliyoruz.Burada yeni eklenen kitap tablosunu seçiyorum.(Zaten mevcutta ekli tablolar üstünde değişiklikleri kendisi görüyor,ayrı birşey seçmeme gerek yok).Bu şekilde finishe bastığımızda artık yeni eklediğim TC kimlik numarası alanı ve yeni tablom benim modelimin içerisine gelmiş oldu

UserPostedImage


8-)Lazy Load Kısaca verilerin bağlı oldukları verileride getirmesi işlemidir
Modelimiz(Contextimiz) in lazy load özelliğine bakmak istiyorsak isel Model Browserdan
Modelimizin Properties tıklayarak Lazy Load Enabled özelliğimizi True veya False
alabiliyoruz. Ben aşağıda lazy load açıkken ve kapalı iken Sql Profilerdan Sql giden sorguları trace ettim.

Lazy Load Kapalı iken

Bu sorgu en temel sorgulardan biridir.


Kod:

TelefonRehberiEntities tr = new TelefonRehberiEntities();
            var kisi = tr.Kisi;
            dataGridView1.DataSource = kisi;


SELECT 
[Extent1].[KisiID] AS [KisiID], 
[Extent1].[Ad] AS [Ad], 
[Extent1].[Soyad] AS [Soyad], 
[Extent1].[Cinsiyet] AS [Cinsiyet], 
[Extent1].[Yas] AS [Yas], 
[Extent1].[TCKimlik] AS [TCKimlik]
FROM [dbo].[Kisi] AS [Extent1]

//Lazy Load Açık iken

SELECT 
[Extent1].[KisiID] AS [KisiID], 
[Extent1].[Ad] AS [Ad], 
[Extent1].[Soyad] AS [Soyad], 
[Extent1].[Cinsiyet] AS [Cinsiyet], 
[Extent1].[Yas] AS [Yas], 
[Extent1].[TCKimlik] AS [TCKimlik]
FROM [dbo].[Kisi] AS [Extent1]

exec sp_executesql N'SELECT 
[Extent1].[KisiID] AS [KisiID], 
[Extent1].[DogumGünü] AS [DogumGünü], 
[Extent1].[Meslek] AS [Meslek]
FROM [dbo].[KisiDetay] AS [Extent1]
WHERE [Extent1].[KisiID] = @EntityKeyValue1',N'@EntityKeyValue1 int',@EntityKeyValue1=1


Lazy load açıkken Görüldüğü gibi kayıtların ilişkili kayıtlarıda görmüş olur


Bu konudaki kullanıcılar
Guest
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.