EF Core'u Kullanmaya Başlama
Bu öğreticide, Entity Framework Core kullanarak SQLite veritabanına veri erişimi gerçekleştiren bir .NET Core konsol uygulaması oluşturacaksınız.
Öğreticiyi Windows üzerinde Visual Studio'yu veya Windows, macOS veya Linux'ta .NET CLI kullanarak izleyebilirsiniz.
GitHub'da bu makalenin örneğini görüntüleyin.
Önkoşullar
Aşağıdaki yazılımı yükleyin:
Yeni proje oluşturma
dotnet new console -o EFGetStarted
cd EFGetStarted
Entity Framework Core'u yükleme
EF Core'u yüklemek için, hedeflemek istediğiniz EF Core veritabanı sağlayıcılarının paketini yüklersiniz. .NET'in desteklediği tüm platformlarda çalıştığından bu öğreticide SQLite kullanılmaktadır. Kullanılabilir sağlayıcıların listesi için bkz . Veritabanı Sağlayıcıları.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite
Modeli oluşturma
Modeli oluşturan bir bağlam sınıfı ve varlık sınıfları tanımlayın.
- Proje dizininde aşağıdaki kodla Model.cs dosyasını oluşturun
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
public string DbPath { get; }
public BloggingContext()
{
var folder = Environment.SpecialFolder.LocalApplicationData;
var path = Environment.GetFolderPath(folder);
DbPath = System.IO.Path.Join(path, "blogging.db");
}
// The following configures EF to create a Sqlite database file in the
// special "local" folder for your platform.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite($"Data Source={DbPath}");
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List<Post> Posts { get; } = new();
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
EF Core ayrıca var olan bir veritabanından modele ters mühendislik de yapabilir.
İpucu: Bu uygulama, netlik sağlamak için kasıtlı olarak işleri basit tutar. Bağlan ion dizeleri üretim uygulamaları için kodda depolanmamalıdır. Ayrıca her C# sınıfını kendi dosyasına bölmek isteyebilirsiniz.
Veritabanını oluşturma
Aşağıdaki adımlarda veritabanı oluşturmak için geçişler kullanılır.
Aşağıdaki komutları çalıştırın:
dotnet tool install --global dotnet-ef dotnet add package Microsoft.EntityFrameworkCore.Design dotnet ef migrations add InitialCreate dotnet ef database update
Bu, dotnet ef ve komutu bir projede çalıştırmak için gereken tasarım paketini yükler. komutu,
migrations
modelin ilk tablo kümesini oluşturmak üzere bir geçişin iskelesini oluşturur.database update
komutu veritabanını oluşturur ve yeni geçişi buna uygular.
Oluşturma, okuma, güncelleştirme ve silme
Program.cs dosyasını açın ve içeriğini aşağıdaki kodla değiştirin:
using System; using System.Linq; using var db = new BloggingContext(); // Note: This sample requires the database to be created before running. Console.WriteLine($"Database path: {db.DbPath}."); // Create Console.WriteLine("Inserting a new blog"); db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" }); db.SaveChanges(); // Read Console.WriteLine("Querying for a blog"); var blog = db.Blogs .OrderBy(b => b.BlogId) .First(); // Update Console.WriteLine("Updating the blog and adding a post"); blog.Url = "https://devblogs.microsoft.com/dotnet"; blog.Posts.Add( new Post { Title = "Hello World", Content = "I wrote an app using EF Core!" }); db.SaveChanges(); // Delete Console.WriteLine("Delete the blog"); db.Remove(blog); db.SaveChanges();
Uygulamayı çalıştırma
dotnet run
Sonraki adımlar
- Web uygulamasında EF Core kullanmak için ASP.NET Core Öğreticisi'ni izleyin
- LINQ sorgu ifadeleri hakkında daha fazla bilgi edinin
- Gerekli ve maksimum uzunluk gibiöğeleri belirtmek için modelinizi yapılandırın
- Modelinizi değiştirdikten sonra veritabanı şemasını güncelleştirmek için Geçişler'i kullanın