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.
Aşağıdaki yazılımı yükleyin:
dotnet new console -o EFGetStarted
cd EFGetStarted
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ş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.
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.
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();
dotnet run
- 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
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin: