Database First
Bu video ve adım adım yönergeler, Entity Framework kullanarak Database First geliştirmeye yönelik bir giriş sağlar. Database First, varolan bir veritabanından bir modele ters mühendislik yapmanıza olanak sağlar. Model bir EDMX dosyasında (. edmx uzantılı) depolanır ve Entity Framework Designer görüntülenebilir ve düzenlenebilir. Uygulamanızda etkileşimde bulunan sınıflar, EDMX dosyasından otomatik olarak oluşturulur.
Videoyu izleme
Bu videoda Entity Framework kullanarak Database First geliştirmeye bir giriş sunulmaktadır. Database First, varolan bir veritabanından bir modele ters mühendislik yapmanıza olanak sağlar. Model bir EDMX dosyasında (. edmx uzantılı) depolanır ve Entity Framework Designer görüntülenebilir ve düzenlenebilir. Uygulamanızda etkileşimde bulunan sınıflar, EDMX dosyasından otomatik olarak oluşturulur.
Sunulma ölçütü: Rowa Miller
Önkoşullar
bu izlenecek yolu tamamlamak için en az Visual Studio 2010 veya Visual Studio 2012 yüklemiş olmanız gerekir.
Visual Studio 2010 kullanıyorsanız, NuGet da yüklemiş olmanız gerekir.
1. var olan bir veritabanını oluşturun
Genellikle, var olan bir veritabanını hedeflerken zaten oluşturulur, ancak bu izlenecek yol için, erişmek üzere bir veritabanı oluşturulması gerekir.
Visual Studio ile yüklenen veritabanı sunucusu, yüklemiş olduğunuz Visual Studio sürümüne bağlı olarak farklılık gösteren bir sürümdür:
- Visual Studio 2010 kullanıyorsanız SQL bir Express veritabanı oluşturursunuz.
- Visual Studio 2012 kullanıyorsanız, localdb veritabanı oluşturursunuz.
Şimdi veritabanını oluşturalım.
Visual Studio’yu açın
Görünüm- Sunucu Gezgini
Veri bağlantıları ' na sağ tıklayın - bağlantı ekle...
Sunucu Gezgini bir veritabanına bağlı değilseniz, veri kaynağı olarak Microsoft SQL Server seçmeniz gerekir

' i yüklemiş olduğunuza bağlı olarak localdb veya SQL Express 'e Bağlan ve veritabanı adı olarak databasefirst. blog yazın


Tamam ' ı seçtiğinizde, yeni bir veritabanı oluşturmak isteyip istemediğiniz sorulur, Evet ' i seçin.

Yeni veritabanı artık Sunucu Gezgini görüntülenir, sağ tıklayıp Yeni sorgu ' yı seçin.
aşağıdaki SQL yeni sorguya kopyalayın, ardından sorguya sağ tıklayıp yürüt ' ü seçin.
CREATE TABLE [dbo].[Blogs] (
[BlogId] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (200) NULL,
[Url] NVARCHAR (200) NULL,
CONSTRAINT [PK_dbo.Blogs] PRIMARY KEY CLUSTERED ([BlogId] ASC)
);
CREATE TABLE [dbo].[Posts] (
[PostId] INT IDENTITY (1, 1) NOT NULL,
[Title] NVARCHAR (200) NULL,
[Content] NTEXT NULL,
[BlogId] INT NOT NULL,
CONSTRAINT [PK_dbo.Posts] PRIMARY KEY CLUSTERED ([PostId] ASC),
CONSTRAINT [FK_dbo.Posts_dbo.Blogs_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [dbo].[Blogs] ([BlogId]) ON DELETE CASCADE
);
2. uygulamayı oluşturun
Şeyleri basit tutmak için, veri erişimi gerçekleştirmek üzere Database First kullanan temel bir konsol uygulaması oluşturacağız:
- Visual Studio’yu açın
- Dosya- Yeni- > Project...
- sol menü ve konsol uygulamasındanWindows seçin
- Ad olarak Databasefirstsample yazın
- Tamam'ı seçin
3. tersine mühendislik modeli
modelimizi oluşturmak için Visual Studio bir parçası olarak dahil edilen Entity Framework Designer kullanacağız.
Project- Yeni öğe Ekle...
sol menüden verileri seçin ve ardından ADO.NET Varlık Veri Modeli
Ad olarak BloggingModel girin ve Tamam 'a tıklayın
Bu, varlık veri modeli Sihirbazı 'nı başlatır
Veritabanından oluştur ' u seçin ve İleri ' ye tıklayın.

İlk bölümde oluşturduğunuz veritabanına bağlantıyı seçin, bağlantı dizesinin adı olarak BloggingContext girin ve İleri ' ye tıklayın.

Tüm tabloları içeri aktarmak için ' tablolar ' seçeneğinin yanındaki onay kutusuna tıklayın ve ' son ' a tıklayın

Tersine mühendislik işlemi tamamlandıktan sonra, yeni model projenize eklenir ve Entity Framework Designer görüntülemeniz için açılır. Veritabanına yönelik bağlantı ayrıntılarına sahip bir App.config dosyası da projenize eklenmiştir.

Visual Studio 2010 ' de ek adımlar
Visual Studio 2010 ' de çalışıyorsanız, en son Entity Framework sürümüne yükseltmek için izlemeniz gereken bazı ek adımlar vardır. ' Nin, kullanımı çok daha kolay olan gelişmiş bir API yüzeyine erişim sağladığından ve en son hata düzeltmelerinin yanı sıra yükseltme önemlidir.
İlk olarak, NuGet Entity Framework en son sürümünü edinmemiz gerekiyor.
- Project: NuGet paketlerini yönet...Manage NuGet Packages... seçeneğine sahip değilseniz NuGet en son sürümünü yüklemelisiniz
- Çevrimiçi sekmesini seçin
- EntityFramework paketini seçin
- Install 'a tıklayın
Bundan sonra, Entity Framework sonraki sürümlerinde tanıtılan DbContext API 'sini kullanan kodu oluşturmak için modelimizi değiştirmemiz gerekiyor.
EF Designer 'daki modelinizin boş bir noktasına sağ tıklayıp kod oluşturma öğesi Ekle... seçeneğini belirleyin.
Sol menüden çevrimiçi şablonlar ' ı seçin ve DbContext ' i arayın
C# için EF 5. x DbContext oluşturucusunuseçin, ad olarak BloggingModel girin ve Ekle ' ye tıklayın.

4. & yazma verisi okunuyor
Artık bir modelimiz olduğuna göre, bazı verilere erişmek için bunu kullanmanın zamanı. Verilere erişmek için kullanacağınız sınıflar, EDMX dosyasına bağlı olarak sizin için otomatik olarak oluşturulur.
bu ekran görüntüsü Visual Studio 2012 ' den Visual Studio 2010 ' i 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 olacaktır.

Ana yöntemi aşağıda gösterildiği gibi program. cs ' de uygulayın. Bu kod, bağlamımız yeni bir örnek oluşturur ve yeni bir blog eklemek için onu kullanır. Daha sonra, bir LINQ sorgusu kullanarak, veritabanındaki tüm blogları başlık sırasına göre sıralanmış olarak alı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();
}
}
}
Şimdi 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. veritabanı değişiklikleriyle ilgilenme
Artık veritabanı şemanızda bazı değişiklikler yapmanız zaman alabilir. bu değişiklikleri yaparken, bu değişiklikleri yansıtacak şekilde modelimizi de güncelleştirmeniz gerekir.
İlk adım, veritabanı şemasında bazı değişiklikler yapmak için kullanılır. Şemaya bir kullanıcı tablosu ekleyeceğiz.
- Sunucu Gezgini ve Yeni sorgu ' yı seçin .
- aşağıdaki SQL yeni sorguya kopyalayın, ardından sorguya sağ tıklayıp yürüt ' ü seçin.
CREATE TABLE [dbo].[Users]
(
[Username] NVARCHAR(50) NOT NULL PRIMARY KEY,
[DisplayName] NVARCHAR(MAX) NULL
)
Artık şema güncellendiğinden, modelin bu değişikliklerle güncelleştirilmesi zaman atalım.
EF Designer 'daki modelinizin boş bir noktasına sağ tıklayın ve ' veritabanını güncelleştir... ' seçeneğini belirleyin, bu işlem güncelleştirme sihirbazını başlatır
Güncelleştirme sihirbazının Ekle sekmesinde tablolar ' ın yanındaki kutuyu işaretleyin, bundan sonra şemadan yeni tablolar eklemek istiyoruz. Yenile sekmesi, modelde, güncelleştirme sırasında değişiklikler için denetlenecek tüm mevcut tabloları gösterir. Silme sekmeleri şemadan kaldırılan tüm tabloları gösterir ve güncelleştirmenin bir parçası olarak modelden de kaldırılır. Bu iki sekmede bulunan bilgiler otomatik olarak algılanır ve yalnızca bilgilendirme amacıyla sağlanır, hiçbir ayarı değiştiremezsiniz.

Güncelleştirme sihirbazında son ' a tıklayın
Model artık veritabanına eklediğimiz Kullanıcı tablosuyla eşleşen yeni bir kullanıcı varlığı içerecek şekilde güncelleştirilir.

Özet
Bu kılavuzda, var olan bir veritabanını temel alan EF tasarımcısında bir model oluşturmamızı sağlayan Database First geliştirmeyi inceledik. Daha sonra bu modeli veritabanından bazı verileri okumak ve yazmak için kullandık. Son olarak, modeli veritabanı şemasında yaptığımız değişiklikleri yansıtacak şekilde güncelleştirdik.