Aracılığıyla paylaş


Visual Studio veya Visual Web Developer kullanarak SQL Server Compact ile ASP.NET Web Uygulaması Dağıtma: SQL Server Compact Veritabanlarını Dağıtma - 2 / 12

tarafından Tom Dykstra

Başlangıç Projelerini İndir

Bu öğretici serisi, Visual Studio 2012 RC veya Web için Visual Studio Express 2012 RC kullanarak SQL Server Compact veritabanı içeren bir ASP.NET web uygulaması projesi dağıtmayı (yayımlamayı) gösterir. Web Yayımlama Güncelleştirmesi'ni yüklerseniz Visual Studio 2010'u da kullanabilirsiniz. Seriye giriş için serideki ilk öğreticiye bakın.

Visual Studio 2012'nin RC sürümünden sonra sunulan dağıtım özelliklerini gösteren, SQL Server Compact dışındaki SQL Server sürümleri dağıtmayı ve Azure App Service Web Apps'a dağıtmayı gösteren bir öğretici için bkz. Visual Studio kullanarak Web Dağıtımı'nı ASP.NET.

Genel Bakış

Bu öğreticide iki SQL Server Compact veritabanının ve dağıtım için veritabanı altyapısının nasıl ayarlanacağı gösterilmektedir.

Veritabanı erişimi için Contoso University uygulaması, .NET Framework dahil edilmediğinden uygulamayla birlikte dağıtılması gereken aşağıdaki yazılımları gerektirir:

Veritabanı yapısı ve uygulamanın iki veritabanındaki verilerin bir kısmı (tümü değil) de dağıtılmalıdır. Genellikle, bir uygulama geliştirirken, canlı bir siteye dağıtmak istemediğiniz bir veritabanına test verileri girersiniz. Ancak, dağıtmak istediğiniz bazı üretim verilerini de girebilirsiniz. Bu öğreticide Contoso University projesini, dağıttığınızda gerekli yazılımların ve doğru verilerin dahil olması için yapılandıracaksınız.

Anımsatıcı: Öğreticide ilerlerken bir hata iletisi alırsanız veya bir şey çalışmıyorsa sorun giderme sayfasını kontrol edin.

SQL Server Compact ile SQL Server Express karşılaştırması

Örnek uygulama SQL Server Compact 4.0 kullanır. Bu veritabanı altyapısı, web siteleri için nispeten yeni bir seçenektir; SQL Server Compact önceki sürümleri bir web barındırma ortamında çalışmaz. SQL Server Compact, SQL Server Express ile geliştirme ve tam SQL Server dağıtma senaryolarına kıyasla birkaç avantaj sunar. Seçtiğiniz barındırma sağlayıcısına bağlı olarak, SQL Server Compact dağıtmak daha ucuz olabilir çünkü bazı sağlayıcılar tam bir SQL Server veritabanını desteklemek için ek ücret alır. Veritabanı altyapısını web uygulamanızın bir parçası olarak dağıtabileceğinizden SQL Server Compact için ek ücret alınmaz.

Ancak, sınırlamalarını da bilmeniz gerekir. SQL Server Compact saklı yordamları, tetikleyicileri, görünümleri veya çoğaltmayı desteklemez. (SQL Server Compact tarafından desteklenmeyen SQL Server özelliklerin tam listesi için bkz. SQL Server Compact ile SQL Server Arasındaki Farklar.) Ayrıca, SQL Server Express ve SQL Server veritabanlarındaki şemaları ve verileri işlemek için kullanabileceğiniz araçlardan bazıları SQL Server Compact ile çalışmaz. Örneğin, SQL Server Compact veritabanlarıyla Visual Studio'da SQL Server Management Studio veya SQL Server Veri Araçları kullanamazsınız. SQL Server Compact veritabanlarıyla çalışmak için başka seçenekleriniz de vardır:

  • SQL Server Compact için sınırlı veritabanı düzenleme işlevi sunan Visual Studio'da Sunucu Gezgini'ni kullanabilirsiniz.
  • Sunucu Gezgini'ne göre daha fazla özelliğe sahip olan WebMatrix'in veritabanı düzenleme özelliğini kullanabilirsiniz.
  • SQL Server Compact Araç Kutusu ve SQL Compact veri ve şema betiği yardımcı programı gibi nispeten tam özellikli üçüncü taraf veya açık kaynak araçları kullanabilirsiniz.
  • Veritabanı şemasını işlemek için kendi DDL (veri tanım dili) betiklerinizi yazabilir ve çalıştırabilirsiniz.

SQL Server Compact ile başlayıp gereksinimleriniz geliştikçe daha sonra yükseltebilirsiniz. Bu serinin sonraki öğreticilerinde, SQL Server Compact'den SQL Server Express ve SQL Server geçişini gösterir. Ancak, yeni bir uygulama oluşturuyorsanız ve yakın gelecekte SQL Server ihtiyacınız olmasını bekliyorsanız, SQL Server veya SQL Server Express ile başlamak muhtemelen en iyisidir.

Dağıtım için SQL Server Compact Veritabanı Altyapısını Yapılandırma

Contoso University uygulamasında veri erişimi için gereken yazılım aşağıdaki NuGet paketleri yüklenerek eklendi:

Bağlantılar, bu paketlerin geçerli sürümlerine işaret edebilir ve bu sürümler bu öğretici için indirdiğiniz başlangıç projesinde yüklü olandan daha yeni olabilir. Bir barındırma sağlayıcısına dağıtım için Entity Framework 5.0 veya sonraki bir sürümü kullandığınızdan emin olun. Code First Migrations önceki sürümleri Tam Güven gerektirir ve birçok barındırma sağlayıcısında uygulamanız Orta Güven'de çalışır. Orta Güven hakkında daha fazla bilgi için, Test Ortamı olarak IIS'ye Dağıtma öğreticisine bakın.

NuGet paketi yüklemesi genellikle bu yazılımı uygulamaya dağıtmak için ihtiyacınız olan her şeyi halleder. Bazı durumlarda bu, Web.config dosyasını değiştirme ve çözümü her oluşturduğunuzda çalıştırılacak PowerShell betikleri ekleme gibi görevleri içerir. NuGet kullanmadan bu özelliklerden herhangi biri (SQL Server Compact ve Entity Framework gibi) için destek eklemek istiyorsanız, aynı işi el ile yapabilmeniz için NuGet paketi yüklemesinin ne yaptığını bildiğinizden emin olun.

NuGet'in dağıtımın başarılı olmasını sağlamak için yapmanız gereken her şeyle ilgilenmediği bir özel durum vardır. SqlServerCompact NuGet paketi projenize derleme sonrası betiği ekler ve bu betik yerel derlemeleri proje bölmesi klasörünün altındaki x86 ve amd64 alt klasörlerine kopyalar, ancak betik bu klasörleri projede içermez. Sonuç olarak, Web Dağıtımı bunları projeye el ile eklemediğiniz sürece hedef web sitesine kopyalamaz. (Bu davranış varsayılan dağıtım yapılandırmasından kaynaklanır; bu öğreticilerde kullanmayacağınız bir diğer seçenek de bu davranışı denetleyen ayarı değiştirmektir. Değiştirebileceğiniz ayar Yalnızca Proje Özellikleri penceresinin Paketle/Yayımla Web sekmesinde dağıtılacak öğeler altında uygulamayı çalıştırmak için gereken dosyalardır. Üretim ortamına gerekenden çok daha fazla dosya dağıtımına neden olabileceğinden bu ayarın değiştirilmesi genellikle önerilmez. Alternatifler hakkında daha fazla bilgi için Bkz. Proje Özelliklerini Yapılandırma öğreticisi.)

Projeyi derleyin ve Çözüm Gezgini henüz yapmadıysanız Tüm Dosyaları Göster'e tıklayın. Yenile'ye de tıklamanız gerekebilir.

Solution_Explorer_Show_All_Files

amd64 ve x86 klasörlerini görmek için bin klasörünü genişletin, sonra bu klasörleri seçin, sağ tıklayın ve Projeye Ekle'yi seçin.

amd64_and_x86_in_Solution_Explorer.png

Klasör simgeleri, klasörün projeye dahil edildiğini gösterecek şekilde değişir.

Solution_Explorer_amd64_included.png

Uygulama Veritabanı Dağıtımı için Code First Migrations Yapılandırma

Bir uygulama veritabanını dağıttığınızda, genellikle geliştirme veritabanınızı içindeki tüm verilerle birlikte üretime dağıtmazsınız, çünkü içindeki verilerin çoğu muhtemelen yalnızca test amacıyla vardır. Örneğin, bir test veritabanındaki öğrenci adları kurgusaldır. Öte yandan, genellikle içinde hiç veri olmadan yalnızca veritabanı yapısını dağıtamazsınız. Test veritabanınızdaki verilerden bazıları gerçek veriler olabilir ve kullanıcılar uygulamayı kullanmaya başladığında orada olmaları gerekir. Örneğin, veritabanınızda geçerli not değerleri veya gerçek departman adları içeren bir tablo olabilir.

Bu yaygın senaryonun benzetimini yapmak için veritabanına yalnızca üretimde olmasını istediğiniz verileri ekleyen bir Code First Migrations Seed yöntemi yapılandıracaksınız. Code First veritabanını üretimde oluşturduğunda üretimde çalıştırılacağından bu Seed yöntemi test verileri eklemez.

Geçişler yayımlanmadan önce Code First'in önceki sürümlerinde, geliştirme sırasında yapılan her model değişikliğinde veritabanının sıfırdan tamamen silinmesi ve yeniden oluşturulması gerektiğinden, Seed yöntemlerinin test verileri eklemesi de yaygındı. Code First Migrations ile test verileri veritabanı değişikliklerinden sonra korunur, bu nedenle test verilerinin Seed yöntemine dahil edilmesi gerekmez. İndirdiğiniz proje, bir başlatıcı sınıfının Seed yöntemindeki tüm verileri içeren pre-Migrations yöntemini kullanır. Bu öğreticide başlatıcı sınıfını devre dışı bırakacak ve Geçişleri etkinleştireceksiniz. Ardından, Yalnızca üretime eklenmesini istediğiniz verileri ekleyebilmesi için Migrations yapılandırma sınıfındaki Seed yöntemini güncelleştireceksiniz.

Aşağıdaki diyagramda uygulama veritabanının şeması gösterilmektedir:

School_database_diagram

Bu öğreticiler için, site ilk dağıtıldığında ve Enrollment tablolarının boş olması gerektiğini varsayacaksınızStudent. Diğer tablolar, uygulama canlı yayına geçtiğinde önceden yüklenmesi gereken veriler içerir.

Code First Migrations kullanacağınızdan, artık DropCreateDatabaseIfModelChanges Code First başlatıcısını kullanmanız gerekmez. Bu başlatıcının kodu ContosoUniversity.DAL projesindeki SchoolInitializer.cs dosyasındadır. Web.config dosyasının appSettings öğesindeki bir ayar, uygulama veritabanına ilk kez erişmeye çalıştığında bu başlatıcının çalışmasına neden olur:

<appSettings>
  <add key="Environment" value="Dev" />
  <add key="DatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL" value="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity.DAL" />
</appSettings>

Uygulama Web.config dosyasını açın ve code first başlatıcı sınıfını belirten öğeyi appSettings öğesinden kaldırın. appSettings öğesi şimdi şöyle görünür:

<appSettings>
  <add key="Environment" value="Dev" />
</appSettings>

Not

Başlatıcı sınıfını belirtmenin bir diğer yolu da Bunu Global.asax dosyasındaki Application_Start yöntemini çağırarak Database.SetInitializer yapmaktır. Başlatıcıyı belirtmek için bu yöntemi kullanan bir projede Geçişleri etkinleştiriyorsanız, bu kod satırını kaldırın.

Ardından Code First Migrations etkinleştirin.

İlk adım, ContosoUniversity projesinin başlangıç projesi olarak ayarlandığından emin olmaktır. Çözüm Gezgini'da ContosoUniversity projesine sağ tıklayın ve Başlangıç Projesi Olarak Ayarla'yı seçin. Code First Migrations, veritabanı bağlantı dizesini bulmak için başlangıç projesine bakar.

Araçlar menüsünden NuGet Paket Yöneticisi’ne ve ardından Paket Yöneticisi Konsolu’na tıklayın.

Selecting_Package_Manager_Console

Paket Yöneticisi Konsolu penceresinin üst kısmında, varsayılan proje olarak ContosoUniversity.DAL öğesini seçin ve ardından PM> istemde "enable-migrations" yazın.

enable-migrations_command

Bu komut, ContosoUniversity.DAL projesinde yeni bir Migrations klasöründe configuration.cs dosyası oluşturur.

Migrations_folder_in_Solution_Explorer

"enable-migrations" komutunun Code First bağlam sınıfını içeren projede yürütülmesi gerektiğinden DAL projesini seçtiniz. Bu sınıf bir sınıf kitaplığı projesinde olduğunda, Code First Migrations çözüm için başlangıç projesinde veritabanı bağlantı dizesini arar. ContosoUniversity çözümünde, web projesi başlangıç projesi olarak ayarlanmıştır. (Bağlantı dizesine sahip projeyi Visual Studio'daki başlangıç projesi olarak belirlemek istemiyorsanız, başlangıç projesini PowerShell komutunda belirtebilirsiniz. enable-migrations komutunun komut söz dizimini görmek için "get-help enable-migrations" komutunu girebilirsiniz.)

Configuration.cs dosyasını açın ve yöntemindeki Seed açıklamaları aşağıdaki kodla değiştirin:

var instructors = new List<Instructor>
{   
    new Instructor { FirstMidName = "Kim",     LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11"), OfficeAssignment = new OfficeAssignment { Location = "Smith 17" } },
    new Instructor { FirstMidName = "Fadi",    LastName = "Fakhouri",    HireDate = DateTime.Parse("2002-07-06"), OfficeAssignment = new OfficeAssignment { Location = "Gowan 27" } },
    new Instructor { FirstMidName = "Roger",   LastName = "Harui",       HireDate = DateTime.Parse("1998-07-01"), OfficeAssignment = new OfficeAssignment { Location = "Thompson 304" } },
    new Instructor { FirstMidName = "Candace", LastName = "Kapoor",      HireDate = DateTime.Parse("2001-01-15") },
    new Instructor { FirstMidName = "Roger",   LastName = "Zheng",       HireDate = DateTime.Parse("2004-02-12") }
};
instructors.ForEach(s => context.Instructors.AddOrUpdate(i => i.LastName, s));
context.SaveChanges();

var departments = new List<Department>
{
    new Department { Name = "English",     Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 1 },
    new Department { Name = "Mathematics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 2 },
    new Department { Name = "Engineering", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 3 },
    new Department { Name = "Economics",   Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 4 }
};
departments.ForEach(s => context.Departments.AddOrUpdate(d => d.Name, s));
context.SaveChanges();

var courses = new List<Course>
{
    new Course { CourseID = 1050, Title = "Chemistry",      Credits = 3, DepartmentID = 3, Instructors = new List<Instructor>() },
    new Course { CourseID = 4022, Title = "Microeconomics", Credits = 3, DepartmentID = 4, Instructors = new List<Instructor>() },
    new Course { CourseID = 4041, Title = "Macroeconomics", Credits = 3, DepartmentID = 4, Instructors = new List<Instructor>() },
    new Course { CourseID = 1045, Title = "Calculus",       Credits = 4, DepartmentID = 2, Instructors = new List<Instructor>() },
    new Course { CourseID = 3141, Title = "Trigonometry",   Credits = 4, DepartmentID = 2, Instructors = new List<Instructor>() },
    new Course { CourseID = 2021, Title = "Composition",    Credits = 3, DepartmentID = 1, Instructors = new List<Instructor>() },
    new Course { CourseID = 2042, Title = "Literature",     Credits = 4, DepartmentID = 1, Instructors = new List<Instructor>() }
};
courses.ForEach(s => context.Courses.AddOrUpdate(s));
context.SaveChanges();

courses[0].Instructors.Add(instructors[0]);
courses[0].Instructors.Add(instructors[1]);
courses[1].Instructors.Add(instructors[2]);
courses[2].Instructors.Add(instructors[2]);
courses[3].Instructors.Add(instructors[3]);
courses[4].Instructors.Add(instructors[3]);
courses[5].Instructors.Add(instructors[3]);
courses[6].Instructors.Add(instructors[3]);
context.SaveChanges();

Ad alanı için List henüz bir using deyiminiz olmadığından, bunların altında kırmızı dalgalı çizgiler olması için başvurular. örneklerinden List birine sağ tıklayın ve Çözümle'ye tıklayın ve ardından System.Collections.Generic'ı kullanarak öğesine tıklayın.

using deyimiyle çözme

Bu menü seçimi, dosyanın üst kısmındaki using deyimlere aşağıdaki kodu ekler.

using System.Collections.Generic;

Not

yöntemine Seed kod eklemek, veritabanına sabit veri eklemenin birçok yoludur. Alternatif olarak, her geçiş sınıfının ve Down yöntemlerine Up kod ekleyebilirsiniz. Up ve Down yöntemleri, veritabanı değişikliklerini uygulayan kod içerir. Veritabanı Güncelleştirmesi Dağıtma öğreticisinde bunların örneklerini görürsünüz.

Yöntemini kullanarak Sql SQL deyimlerini yürüten kod da yazabilirsiniz. Örneğin, Department tablosuna bütçe sütunu ekliyorsanız ve geçişin bir parçası olarak tüm departman bütçelerini 1.000,00 TL olarak başlatmak istiyorsanız, bu geçiş yöntemine Up aşağıdaki kod satırını ekleyebilirsiniz:

Sql("UPDATE Department SET Budget = 1000");

Bu öğreticide gösterilen bu örnek, Code First Migrations Configuration sınıfının yönteminde Seed yöntemini kullanırAddOrUpdate. Code First Migrations her geçiş sonrasında Seed yöntemini çağırır ve bu yöntem zaten eklenmiş satırları güncelleştirir veya henüz yoksa ekler. Yöntemi senaryonuz AddOrUpdate için en iyi seçenek olmayabilir. Daha fazla bilgi için Julie Lerman'ın blogunda EF 4.3 AddOrUpdate Yöntemi ile ilgilenme bölümüne bakın.

Projeyi oluşturmak için CTRL-SHIFT-B tuşlarına basın.

Sonraki adım, ilk geçiş için bir DbMigration sınıf oluşturmaktır. Bu geçişin yeni bir veritabanı oluşturmasını istiyorsunuz, bu nedenle zaten var olan veritabanını silmeniz gerekiyor. SQL Server Compact veritabanları App_Data klasöründeki .sdf dosyalarında bulunur. Çözüm Gezgini'da ContosoUniversity projesindeki App_Data genişleterek .sdf dosyalarıyla temsil edilen iki SQL Server Compact veritabanını görebilirsiniz.

School.sdf dosyasına sağ tıklayın ve Sil'e tıklayın.

sdf_files_in_Solution_Explorer

Paket Yöneticisi Konsolu penceresinde, ilk geçişi oluşturmak için "add-migration Initial" komutunu girin ve "Initial" olarak adlandırın.

add-migration_command

Code First Migrations Migrations klasöründe başka bir sınıf dosyası oluşturur ve bu sınıf veritabanı şemasını oluşturan kodu içerir.

Paket Yöneticisi Konsolu'nda"update-database" komutunu girerek veritabanını oluşturun ve Seed yöntemini çalıştırın.

güncelleştirme database_command

(Bir tablonun zaten var olduğunu ve oluşturulamadığını belirten bir hata alırsanız, bunun nedeni büyük olasılıkla veritabanını sildikten sonra ve yürütmeden update-databaseönce uygulamayı çalıştırmanızdır. Bu durumda School.sdf dosyasını yeniden silin ve komutu yeniden deneyin update-database .)

Uygulamayı çalıştırın. Artık Öğrenciler sayfası boş ancak Eğitmenler sayfasında eğitmenler var. Uygulamayı dağıttığınızda üretimde elde ettiğiniz budur.

Empty_Students_page

Instructors_page_after_initial_migration

Proje artık School veritabanını dağıtmaya hazırdır.

Dağıtım için Üyelik Veritabanı Oluşturma

Contoso University uygulaması, kullanıcıların kimliğini doğrulamak ve yetkilendirmek için ASP.NET üyelik sistemini kullanır ve kimlik doğrulamasını oluşturur. Sayfalarından birine yalnızca yöneticiler erişebilir. Bu sayfayı görmek için uygulamayı çalıştırın ve Kurslar altındaki açılır menüden Kredileri Güncelleştir'i seçin. Yalnızca yöneticiler Kredileri Güncelleştir sayfasını kullanma yetkisine sahip olduğundan, uygulama Oturum Aç sayfasını görüntüler.

Log_in_page

"Pas$w0rd" parolasını kullanarak "yönetici" olarak oturum açın ("w0rd" içindeki "o" harfi yerine sıfır sayısına dikkat edin). Oturum açtıktan sonra Kredileri Güncelleştir sayfası görüntülenir.

Update_Credits_page

Bir siteyi ilk kez dağıttığınızda, test için oluşturduğunuz kullanıcı hesaplarının çoğunu veya tümünü dışlamak yaygın bir durumdur. Bu durumda, bir yönetici hesabı dağıtırsınız ve kullanıcı hesabı dağıtmazsınız. Test hesaplarını el ile silmek yerine, üretimde ihtiyacınız olan tek yönetici kullanıcı hesabına sahip yeni bir üyelik veritabanı oluşturacaksınız.

Not

Üyelik veritabanı, hesap parolalarının karması depolar. Hesapları bir makineden diğerine dağıtmak için, karma oluşturma yordamlarının hedef sunucuda kaynak bilgisayardakinden farklı karmalar oluşturmadığından emin olmanız gerekir. Varsayılan algoritmayı değiştirmediğiniz sürece ASP.NET Evrensel Sağlayıcıları kullandığınızda aynı karmaları oluştururlar. Varsayılan algoritma HMACSHA256'dır ve Web.config dosyasındaki machineKey öğesinin doğrulama özniteliğinde belirtilir.

Üyelik veritabanı Code First Migrations tarafından korunmaz ve veritabanını test hesaplarıyla (Okul veritabanı için olduğu gibi) gösteren otomatik başlatıcı yoktur. Bu nedenle, test verilerini kullanılabilir durumda tutmak için yeni bir veritabanı oluşturmadan önce test veritabanının bir kopyasını oluşturacaksınız.

Çözüm Gezgini'daApp_Data klasöründekiaspnet.sdf dosyasını aspnet-Dev.sdf olarak yeniden adlandırın. (Bir kopya oluşturmayın, yalnızca yeniden adlandırın; birazdan yeni bir veritabanı oluşturacaksınız.)

Çözüm Gezgini web projesinin (ContosoUniversity.DAL değil ContosoUniversity) seçili olduğundan emin olun. Ardından Proje menüsünde ASP.NET Yapılandırma'yı seçerek Web Sitesi Yönetim Aracı'nı (WAT) çalıştırın.

Güvenlik sekmesini seçin.

WAT_Security_tab

Rol Oluştur veya Yönet'e tıklayın ve bir Yönetici rolü ekleyin.

WAT_Create_New_Role

Güvenlik sekmesine dönün, Kullanıcı Oluştur'a tıklayın ve "admin" kullanıcısını yönetici olarak ekleyin. Kullanıcı Oluştur sayfasındaki Kullanıcı Oluştur düğmesine tıklamadan önce Yönetici onay kutusunu seçtiğinizden emin olun. Bu öğreticide kullanılan parola "Pas$w0rd" şeklindedir ve herhangi bir e-posta adresi girebilirsiniz.

WAT_Create_User

Tarayıcıyı kapatın. yeni aspnet.sdf dosyasını görmek için Çözüm Gezgini yenile düğmesine tıklayın.

New_aspnet.sdf_in_Solution_Explorer

aspnet.sdf'ye sağ tıklayın ve Projeye Ekle'yi seçin.

Geliştirmeyi Üretim Veritabanlarından Ayırma

Bu bölümde, geliştirme sürümlerinin School-Dev.sdf ve aspnet-Dev.sdf, üretim sürümlerinin ise School-Prod.sdf ve aspnet-Prod.sdf olması için veritabanlarını yeniden adlandıracaksınız. Bu gerekli değildir, ancak bunu yapmak veritabanlarının test ve üretim sürümlerini karıştırmanıza yardımcı olur.

Çözüm Gezgini'daYenile'ye tıklayın ve daha önce oluşturduğunuz School veritabanını görmek için App_Data klasörünü genişletin; sağ tıklayın ve Projeye ekle'yi seçin.

Including_School.sdf_in_project

aspnet.sdf dosyasını aspnet-Prod.sdf olarak yeniden adlandırın.

School.sdf dosyasınıSchool-Dev.sdf olarak yeniden adlandırın.

Uygulamayı Visual Studio'da çalıştırdığınızda, veritabanı dosyalarının -Prod sürümlerini kullanmak istemezsiniz, -Dev sürümlerini kullanmak istersiniz. Bu nedenle, Web.config dosyasındaki bağlantı dizelerini veritabanlarının -Dev sürümlerine işaret edebilmeleri için değiştirmeniz gerekir. (School-Prod.sdf dosyası oluşturmadınız, ancak bu sorun değil çünkü uygulamanızı orada ilk kez çalıştırdığınızda Code First bu veritabanını üretimde oluşturacaktır.)

Uygulama Web.config dosyasını açın ve bağlantı dizelerini bulun:

<configuration>
  <!-- Settings -->
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=|DataDirectory|aspnet.sdf" providerName="System.Data.SqlServerCe.4.0" />
    <add name="SchoolContext" connectionString="Data Source=|DataDirectory|School.sdf" providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>
  <!-- Settings -->
</configuration>

"aspnet.sdf" öğesini "aspnet-Dev.sdf" olarak değiştirin ve "School.sdf" öğesini "School-Dev.sdf" olarak değiştirin:

<configuration>
  <!-- Settings -->
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=|DataDirectory|aspnet-Dev.sdf" providerName="System.Data.SqlServerCe.4.0" />
    <add name="SchoolContext" connectionString="Data Source=|DataDirectory|School-Dev.sdf" providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>
  <!-- Settings -->
</configuration>

SQL Server Compact veritabanı altyapısı ve her iki veritabanı da artık dağıtılmaya hazırdır. Aşağıdaki öğreticide geliştirme, test ve üretim ortamlarında farklı olması gereken ayarlar için otomatik Web.config dosya dönüştürmeleri ayarlarsınız. (Değiştirilmesi gereken ayarlar arasında bağlantı dizeleri bulunur, ancak bu değişiklikleri daha sonra bir yayımlama profili oluşturduğunuzda ayarlayacaksınız.)

Daha Fazla Bilgi

NuGet hakkında daha fazla bilgi için bkz. NuGet ile Proje Kitaplıklarını Yönetme ve NuGet Belgeleri. NuGet'i kullanmak istemiyorsanız, nuget paketinin yüklendiğinde ne yaptığını belirlemek için nasıl çözümleneceğini öğrenmeniz gerekir. (Örneğin, Web.config dönüştürmeleri yapılandırabilir, PowerShell betiklerini derleme zamanında çalışacak şekilde yapılandırabilir vb.) NuGet'in nasıl çalıştığı hakkında daha fazla bilgi edinmek için bkz. Özellikle Paket Oluşturma ve Yayımlama ve Yapılandırma Dosyası ve Kaynak Kodu Dönüştürmeleri.