Önce Model
Bu video ve adım adım izlenecek yol, Entity Framework kullanarak Model First geliştirmeye giriş niteliğindedir. Model First, Entity Framework Tasarım Aracı kullanarak yeni bir model oluşturmanıza ve ardından modelden bir veritabanı şeması oluşturmanıza olanak tanır. Model bir EDMX dosyasında (.edmx uzantısı) depolanır ve Entity Framework Tasarım Aracı görüntülenebilir ve düzenlenebilir. Uygulamanızda etkileşimde olduğunuz sınıflar EDMX dosyasından otomatik olarak oluşturulur.
Videoyu izleme
Bu video ve adım adım izlenecek yol, Entity Framework kullanarak Model First geliştirmeye giriş niteliğindedir. Model First, Entity Framework Tasarım Aracı kullanarak yeni bir model oluşturmanıza ve ardından modelden bir veritabanı şeması oluşturmanıza olanak tanır. Model bir EDMX dosyasında (.edmx uzantısı) depolanır ve Entity Framework Tasarım Aracı görüntülenebilir ve düzenlenebilir. Uygulamanızda etkileşimde olduğunuz sınıflar EDMX dosyasından otomatik olarak oluşturulur.
Sunan: Rowan Miller
Önkoşullar
Bu kılavuzu tamamlamak için Visual Studio 2010 veya Visual Studio 2012 yüklü olmalıdır.
Visual Studio 2010 kullanıyorsanız NuGet'in de yüklü olması gerekir.
1. Uygulamayı Oluşturma
İşleri basit tutmak için veri erişimi gerçekleştirmek için Önce Model'i kullanan temel bir konsol uygulaması oluşturacağız:
- Visual Studio’yu açın
- Dosya -> Yeni -> Proje...
- Sol menüden Ve Konsol Uygulaması'ndan Windows'ı seçin
- Ad olarak ModelFirstSample girin
- Tamam'ı seçin
2. Model Oluştur
Modelimizi oluşturmak için Visual Studio'nun bir parçası olan Entity Framework Tasarım Aracı kullanacağız.
Proje -> Yeni Öğe Ekle...
Sol menüden Veri'yi seçin ve ardından Varlık Veri Modeli'ni ADO.NET
Ad olarak BloggingModel girin ve Tamam'a tıklayın; bu işlem Varlık Veri Modeli Sihirbazı'nı başlatır
Boş Model'i seçin ve Son'a tıklayın
Entity Framework Tasarım Aracı boş bir modelle açılır. Artık modele varlık, özellik ve ilişkilendirme eklemeye başlayabiliriz.
Tasarım yüzeyine sağ tıklayın ve Özellikler'i seçin
Özellikler penceresi Varlık Kapsayıcı Adı'nı BloggingContextolarak değiştirin. Bu, sizin için oluşturulacak türetilmiş bağlamın adıdır, bağlam veritabanıyla bir oturumu temsil eder ve verileri sorgulamamıza ve kaydetmemize olanak sağlar
Tasarım yüzeyine sağ tıklayın ve Yeni Ekle -> Varlık... öğesini seçin.
Varlık adı olarak Blog yazın ve anahtar adı olarak BlogKimliği'ni girin ve Tamam'a tıklayın
Tasarım yüzeyinde yeni varlığa sağ tıklayın ve Yeni Ekle -> Skaler Özellik'i seçin, özelliğin adı olarak Ad girin.
Url özelliği eklemek için bu işlemi yineleyin.
Tasarım yüzeyinde Url özelliğine sağ tıklayın ve Özellikler'i seçin, Özellikler penceresi Null atanabilir ayarını Trueolarak değiştirin. Bu, bir Blogu veritabanına url atamadan kaydetmemizi sağlar
Az önce öğrendiğiniz teknikleri kullanarak PostId anahtar özelliğine sahip bir Post varlığı ekleyin
Post varlığına Başlık ve İçerik skaler özellikleri ekleme
Artık birkaç varlığımız olduğuna göre, aralarında bir ilişkilendirme (veya ilişki) eklemenin zamanı geldi.
Tasarım yüzeyine sağ tıklayın ve Yeni Ekle -> İlişkilendirme... seçeneğini belirleyin.
İlişkinin bir ucunu Bir çokluğuyla Blog'a, diğer uç noktasını ise ÇokSayıda Posta ile Gönder'e getirin Bu, blogun çok sayıda Gönderisi olduğu ve bir Gönderinin bir Blog'a ait olduğu anlamına gelir
'Post' Varlığına yabancı anahtar özellikleri ekle kutusunun işaretli olduğundan emin olun ve Tamam'a tıklayın
Artık veritabanı oluşturup verileri okumak ve yazmak için kullanabileceğimiz basit bir modelimiz var.
Visual Studio 2010'daki Ek Adımlar
Visual Studio 2010'da çalışıyorsanız, Entity Framework'ün en son sürümüne yükseltmek için izlemeniz gereken bazı ek adımlar vardır. Yükseltme, kullanımı çok daha kolay olan gelişmiş bir API yüzeyine ve en son hata düzeltmelerine erişmenizi sağladığından önemlidir.
İlk olarak, Entity Framework'ün en son sürümünü NuGet'ten almalıyız.
- Proje –> NuGet Paketlerini Yönet...NuGet Paketlerini Yönet... seçeneğiniz yoksa NuGet'in en son sürümünü yüklemeniz gerekir
- Çevrimiçi sekmesini seçin
- EntityFramework paketini seçin
- Yükle'ye tıklayın
Daha sonra, Entity Framework'ün sonraki sürümlerinde kullanıma sunulan DbContext API'sini kullanan kod oluşturmak için modelimizi değiştirmemiz gerekir.
EF Tasarım Aracı modelinizin boş bir noktasına sağ tıklayın ve Kod Oluşturma Öğesi Ekle... öğesini seçin.
Sol menüden Çevrimiçi Şablonlar'ı seçin ve DbContext araması yapın
C# için EF 5.x DbContext Oluşturucusunu seçin, ad olarak BloggingModel yazın ve Ekle'ye tıklayın
3. Veritabanını Oluşturma
Modelimiz göz önünde bulundurulduğunda Entity Framework, modeli kullanarak verileri depolamamıza ve almamıza olanak sağlayacak bir veritabanı şeması hesaplayabilir.
Visual Studio ile yüklenen veritabanı sunucusu, yüklediğiniz Visual Studio sürümüne bağlı olarak farklıdır:
- Visual Studio 2010 kullanıyorsanız bir SQL Express veritabanı oluşturacaksınız.
- Visual Studio 2012 kullanıyorsanız bir LocalDB veritabanı oluşturacaksınız.
Şimdi veritabanını oluşturalım.
Tasarım yüzeyine sağ tıklayın ve Modelden Veritabanı Oluştur... öğesini seçin .
Yeni Bağlan ion... öğesine tıklayın ve kullandığınız Visual Studio sürümüne bağlı olarak LocalDB veya SQL Express'i belirtin, veritabanı adı olarak ModelFirst.Blogging yazın.
Tamam'ı seçtiğinizde yeni veritabanı oluşturmak isteyip istemediğiniz sorulur ve Evet'i seçin
İleri'yi seçtiğinizde Entity Framework Tasarım Aracı veritabanı şemasını oluşturmak için bir betik hesaplar
Betik görüntülendikten sonra Son'a tıklayın ve betik projenize eklenir ve açılır
Betike sağ tıklayın ve Yürüt'e tıklayın, hangi Visual Studio sürümünü kullandığınıza bağlı olarak bağlanacağınız veritabanını belirtmeniz, LocalDB veya SQL Server Express belirtmeniz istenir
4. Veri Okuma ve Yazma
Artık bir modele sahip olduğumuza göre, bazı verilere erişmek için bu modeli kullanma zamanı geldi. Verilere erişmek için kullanacağımız sınıflar, EDMX dosyası temel alınarak sizin için otomatik olarak oluşturulur.
Bu ekran görüntüsü Visual Studio 2012'ye aittir. Visual Studio 2010 kullanıyorsanız BloggingModel.tt ve BloggingModel.Context.tt dosyaları EDMX dosyasının altında iç içe değil doğrudan projenizin altında olur.
Aşağıda gösterildiği gibi Program.cs dosyasında Main yöntemini uygulayın. Bu kod bağlamımızın yeni bir örneğini oluşturur ve ardından bunu kullanarak yeni bir Blog ekler. Ardından, veritabanındaki tüm Blogları Başlığa göre alfabetik olarak sıralanmış olarak almak için bir LINQ sorgusu kullanır.
class Program
{
static void Main(string[] args)
{
using (var db = new BloggingContext())
{
// Create and save a new Blog
Console.Write("Enter a name for a new Blog: ");
var name = Console.ReadLine();
var blog = new Blog { Name = name };
db.Blogs.Add(blog);
db.SaveChanges();
// Display all Blogs from the database
var query = from b in db.Blogs
orderby b.Name
select b;
Console.WriteLine("All blogs in the database:");
foreach (var item in query)
{
Console.WriteLine(item.Name);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
Artık uygulamayı çalıştırabilir ve test edebilirsiniz.
Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...
5. Model Değişiklikleriyle ilgilenme
Şimdi modelimizde bazı değişiklikler yapma zamanı geldi. Bu değişiklikleri yaptığımızda veritabanı şemasını da güncelleştirmemiz gerekiyor.
Modelimize yeni bir Kullanıcı varlığı ekleyerek başlayacağız.
Anahtar adı olarak Kullanıcı Adı ve anahtarın özellik türü olarak Dize olan yeni bir Kullanıcı varlığı adı ekleyin
Tasarım yüzeyinde Kullanıcı Adı özelliğine sağ tıklayın ve Özellikler'i seçin, Özellikler penceresi MaxLength ayarını 50olarak değiştirin. Bu, kullanıcı adına depolanabilen verileri 50 karakterle kısıtlar
Kullanıcı varlığına DisplayName skaler özelliği ekleme
Artık güncelleştirilmiş bir modelimiz var ve veritabanını yeni Kullanıcı varlık türümüze uyacak şekilde güncelleştirmeye hazırız.
- Tasarım yüzeyine sağ tıklayın ve Modelden Veritabanı Oluştur... öğesini seçin. Entity Framework, güncelleştirilmiş modeli temel alan bir şemayı yeniden oluşturmak için bir betik hesaplar.
- Son’a tıklayın
- Mevcut DDL betiğinin ve modelin eşleme ve depolama bölümlerinin üzerine yazılmasıyla ilgili uyarılar alabilirsiniz, bu iki uyarı için de Evet'e tıklayın
- Veritabanını oluşturmak için güncelleştirilmiş SQL betiği sizin için açılır
Oluşturulan betik tüm mevcut tabloları bırakır ve şemayı sıfırdan yeniden oluşturur. Bu, yerel geliştirme için işe yarayabilir, ancak önceden dağıtılmış olan bir veritabanına değişiklik göndermek için uygun değildir. Değişiklikleri zaten dağıtılmış bir veritabanında yayımlamanız gerekiyorsa, geçiş betiğini hesaplamak için betiği düzenlemeniz veya şema karşılaştırma aracını kullanmanız gerekir. - Betike sağ tıklayın ve Yürüt'e tıklayın, hangi Visual Studio sürümünü kullandığınıza bağlı olarak bağlanacağınız veritabanını belirtmeniz, LocalDB veya SQL Server Express belirtmeniz istenir
Özet
Bu kılavuzda, EF Tasarım Aracı bir model oluşturmamıza ve ardından bu modelden bir veritabanı oluşturmamıza olanak tanıyan Model First geliştirmesini inceledik. Ardından veritabanından bazı verileri okumak ve yazmak için modeli kullandık. Son olarak modeli güncelleştirdik ve ardından veritabanı şemasını modelle eşleşecek şekilde yeniden oluşturmuş olduk.