Entity Framework Core ile Cross-platform Veri İstemci Uygulamaları Oluşturma
Bu laboratuvar alıştırmasında, Varolan bir SQL veritabanını sorgulamak için Entity Framework Core’u kullanan bir .NET Çekirdek Konsolu projesiyle bir Visual Studio çözümü oluşturacaksınız. Sorgunun sonucu doğrudan konsol penceresine yazdırılır.
- Visual Studio 2017’yi açın.
- Visual Studio penceresinin üst kısmında; Dosya menüsünü tıklayın, Fareyle Yeni menü seçeneğinin üzerine gelin ve ardından Proje … menü seçeneğini seçin.
- Yeni Proje iletişim kutusunda, aşağıdaki eylemleri gerçekleştirin:
Şablonları düğümünü genişletin, Visual C# düğümünü genişletin ve sonra .NET Çekirdek düğümünü seçin.
Konsol Uygulaması (.NET Çekirdeği) şablonunu seçin.
Ad kutusuna, yapbenzet.CoreConsole değerini girin.
Çözüm deyimi için Dizin oluştur seçeneğinin yanındaki onay kutusunun işaretlendiğinden emin olun.
Tamam düğmesini tıklayın. - Visual Studio’nun yeni çözümü ve projeyi açmasını bekleyin.
- Proje oluşturulduktan sonra Visual Studio otomatik olarak Program.cs sınıf dosyasını açacaktır. Bu dosyayı açık bırakın.
- Visual Studio penceresinin üstündeki Görünüm menüsünü tıklayın ve ardından Çözüm Aracı (Solution Explorer) seçeneğini seçin.
- Solution Explorer bölmesinde, proje dosyalarını ortaya çıkarmak için yapbenzet.CoreConsole projesini genişletin.
- Bağımlılıklar düğümünü sağ tıklatın ve NuGet Paketlerini Yönet … menü seçeneğini seçin.
- NuGet Paket Yöneticisi iletişim kutusunda Gözat sekmesini tıklatın.
- Göz At (Browse) sekmesinde, aşağıdaki eylemleri gerçekleştirin:
Arama kutusuna Microsoft.EntityFramework.Core.SqlServer metnini girin ve Enter / Return tuşuna basın.
Arama sonuçlarında, Microsoft sonuç bölümünde Microsoft.EntityFramework.Core.SqlServer öğesini bulun ve seçin. Pakete ilişkin ayrıntılarla sağdaki bir bölme görünür.
Bölmede 1.1.1 sürümünü seçin.
Yükle düğmesini tıklayın.
Önizleme iletişim kutusunda, proje bağımlılıklarınızdaki değişikliklerin listesini görüntüleyin. Tamam düğmesini tıklayın.
Lisans Kabulü iletişim kutusunda, her pakete ilişkin lisans bilgilerini görüntüleyip Kabul Ediyorum düğmesine tıklayın.
- NuGet Paket Yöneticisi iletişim kutusunu kapatın.
- Solution Explorer bölmesinde, yapbenzet.CoreConsole projesini sağ tıklatın, fareyle Ekle menüsü seçeneğinin üzerine gelin ve ardından Yeni Öğe … menü seçeneğini belirleyin.
- Yeni Öğe Ekle iletişim kutusunda, aşağıdaki eylemleri gerçekleştirin:
Visual C# Items düğümünü genişletin ve sonra Kod düğümünü seçin.
Sınıf şablonunu seçin.
Ekle (Add) kutusuna Product.cs değerini girin.
Tamam düğmesini tıklayın.
Dosya oluşturulduktan sonra Visual Studio Product.cs sınıf dosyasını otomatik olarak açacaktır. Bu dosyayı açık bırakın.
Şu anda açık olan Product.cs dosyasında, bir ortak erişimci ayarlayarak Ürün sınıfı tanımını güncelleyin:
public class Product
System.ComponentModel.DataAnnotations ad alanı için yeni bir using ifadesi ekleyin:
using System.ComponentModel.DataAnnotations;
PublicId ile ProductId adında yeni bir int özelliği ekleyin ve accessors ayarlayın:
public int ProductId {get; set; }
Özelliğe bir Anahtar niteliği ekleyerek ProductId özelliğini güncelleyin:
[Key]
public int ProductId {get; set; }
ProductNumber adlı yeni bir dize özelliği, public get ve set accessors ile ekleyin:
public string ProductNumber { get; set; }
Public get ve set accessors ile StandardCost adında yeni bir ondalık özellik ekle:
public decimal StandardCost { get; set; }
Public get ve set accessors ile ListPrice isimli yeni bir ondalık özellik ekleyin:
public decimal ListPrice { get; set; }
Solution Explorer bölmesinde, yapbenzet.CoreConsole projesini sağ tıklatın, fareyle Ekle menüsü seçeneğinin üzerine gelin ve ardından Yeni Öğe … menü seçeneğini belirleyin.
Yeni Öğe Ekle iletişim kutusunda, aşağıdaki eylemleri gerçekleştirin:
Visual C# Items düğümünü genişletin ve sonra Kod düğümünü seçin.
Sınıf şablonunu seçin.
Ad kutusuna ContosoContext.cs değerini girin.
Tamam düğmesini tıklayın.
Dosya oluşturulduktan sonra Visual Studio otomatik olarak ContosoContext.cs sınıf dosyasını açacaktır. Bu dosyayı açık bırakın.
Şu anda açık olan ContosoContext.cs dosyasında, Microsoft.EntityFrameworkCore ad alanı için yeni bir using deyimi ekleyin:
using Microsoft.EntityFrameworkCore;
Genel erişimci ayarlayarak ve DbContext sınıfından devralarak ContosoContext sınıfı tanımını güncelleyin:
public class ContosoContext : DbContext
Aşağıdaki imzayı kullanarak OnConfiguring adlı yeni bir yöntem ContosoContext sınıfına ekleyin:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
OnConfiguring yöntemi içinde, connectionString adında bir Veri Kaynağı = (localdb) MSSQLLOCALDB; Initial Catalog = ContosoDB ;: adlı bir dize değişkeni oluşturmak için yeni bir satır ekleyin.
(localdb)\MSSQLLOCALDB;Initial Catalog=ContosoDB;:
string connectionString = @"Data Source=(localdb)\MSSQLLOCALDB;Initial Catalog=ContosoDB;";
Kodun son satırından sonra, optionsString değişkenini optionsBuilder değişkeninin UseSqlServer yöntemine bir parametre olarak kullanmak için başka bir kod satırı ekleyin:
optionsBuilder.UseSqlServer (connectionString);
ContosoContext sınıfında, Public get ve set accessors olan Products adlı yeni bir DbSet özelliği ekleyin:
public DbSet<Product> Products { get; set; }
Kaydedin ve ContosoContext.cs ve Product.cs dosyalarını kapatın.
Solution Explorer bölmesinde, yapbenzet.CoreConsole projesini sağ tıklatın ve Derle (Build) menü seçeneğini belirleyin.
Şu anda açık olan Program.cs dosyasında Main imleci aşağıdaki imza ile bulun:
static void Main (string [] args)
Main yönteminde ContosoContext sınıfının yeni bir örneğini oluşturan bir using bloğu ekleyin:using (ContosoContext context = new ContosoContext ()) { }
Kullanım bloğunda, konsol penceresine ‘Başarılı Bağlantı’ mesajını yazmak için yeni bir kod satırı ekleyin:
Console.WriteLine ('Bağlantı Başarılı');
Konsol penceresine iki yeni satır eklemek için yeni bir kod satırı ekleyin:
Console.WriteLine (Environment.NewLine);
Sonunda konsola yazılacak görsel tablonun başlığını yazmak için yeni bir kod satırı ekleyin:
Console.WriteLine ($ '{' Product ', 10} \\ t {' Price ', 10} \\ t { 'Maliyet', 10} \\ t { 'kar,' 10} ');
Konsol penceresine yatay bir çizgi yazmak için yeni bir kod satırı ekleyin:Console.WriteLine("------------------------------------------------------------");
Bağlam değişkeninin Products koleksiyonu özelliği üzerinde yinelenen bir foreach bloğu ekleyin ve her örneği, product:
foreach (var product in context.Products)
{
}
adlı bir değişkeni kullanarak referanslar. Foreach bloğu içinde, yeni bir satır ekleyin çeşitli dize formatlama tekniklerini kullanarak ürün değişkeninin çeşitli özelliklerini konsol penceresine yazmak için aşağıdaki kodu kullanın:Console.WriteLine($"{product.ProductNumber,10}\t{product.ListPrice,10:C}\t{product.StandardCost,10:C}\t{(product.ListPrice - product.StandardCost),10:C}");
Foreach bloğundan sonra, ancak yine de using bloğu içinde, konsol penceresine yatay bir çizgi yazmak için yeni bir kod satırı ekleyin:
Console.WriteLine("------------------------------------------------------------");
Using bloğunun dışında, ‘Uygulama başarıyla tamamlandı’ mesajını yazmak için son kod satırından sonra yeni bir kod satırı ekleyin, çıkmak için herhangi bir tuşa basın. konsol penceresine:
System.Console.WriteLine ('Uygulama yürütmeyi tamamladı. Çıkmak için herhangi bir tuşa basın.');
Konsol penceresinden yeni tuşa basmayı okumak için kodun son satırından sonra yeni bir kod satırı ekleyin:
System.Console.ReadKey();
Visual Studio penceresinin üstünde; Hata Ayıkla menüsünü tıklatın ve ardından Hata Ayıklamasını Başlat menü seçeneğini belirleyin.
Konsol penceresine yazdırılan verilere dikkat edin. Bu adımda konsol penceresine aktarılan verilerle ilgili doğrulama soruları sorulacaktır.
Visual Studio uygulama örneğini kapatın.
using System; namespace yapbenzet.CoreConsole { class Program { static void Main(string[] args) { using (ContosoContext context = new ContosoContext()) { Console.WriteLine("Connection Successful"); Console.WriteLine(Environment.NewLine); Console.WriteLine($"{"Product",10}\t{"Price",10}\t{"Cost",10}\t{"Profit",10}"); Console.WriteLine("------------------------------------------------------------"); foreach (var product in context.Products) { Console.WriteLine($"{product.ProductNumber,10}\t{product.ListPrice,10:C}\t{product.StandardCost,10:C}\t" + $"{(product.ListPrice - product.StandardCost),10:C}"); } Console.WriteLine("------------------------------------------------------------"); } System.Console.WriteLine("Application has completed execution. Press any key to exit."); System.Console.ReadKey(); } } }