Mulai menggunakan EF Core

Dalam tutorial ini, Anda membuat aplikasi konsol .NET Core yang melakukan akses data terhadap database SQLite menggunakan Entity Framework Core.

Anda dapat mengikuti tutorial dengan menggunakan Visual Studio di Windows, atau dengan menggunakan .NET CLI di Windows, macOS, atau Linux.

Lihat sampel artikel ini di GitHub.

Prasyarat

Instal perangkat lunak berikut:

Membuat proyek baru

dotnet new console -o EFGetStarted
cd EFGetStarted

Menginstal Entity Framework Core

Untuk menginstal EF Core, Anda menginstal paket untuk penyedia database EF Core yang ingin Anda targetkan. Tutorial ini menggunakan SQLite karena berjalan di semua platform yang didukung .NET. Untuk daftar penyedia yang tersedia, lihat Penyedia Database.

dotnet add package Microsoft.EntityFrameworkCore.Sqlite

Membuat model

Tentukan kelas konteks dan kelas entitas yang membentuk model.

  • Di direktori proyek, buat Model.cs dengan kode berikut
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 juga dapat merekayasa balik model dari database yang ada.

Tips: Aplikasi ini sengaja membuat hal-hal sederhana untuk kejelasan. string Koneksi ion tidak boleh disimpan dalam kode untuk aplikasi produksi. Anda mungkin juga ingin membagi setiap kelas C# menjadi filenya sendiri.

Buatlah databasenya

Langkah-langkah berikut menggunakan migrasi untuk membuat database.

  • Jalankan perintah berikut:

    dotnet tool install --global dotnet-ef
    dotnet add package Microsoft.EntityFrameworkCore.Design
    dotnet ef migrations add InitialCreate
    dotnet ef database update
    

    Ini menginstal dotnet ef dan paket desain yang diperlukan untuk menjalankan perintah pada proyek. Perancah migrations perintah melipat migrasi untuk membuat kumpulan tabel awal untuk model. Perintah database update membuat database dan menerapkan migrasi baru ke database tersebut.

Membuat, membaca, memperbarui , menghapus

  • Buka Program.cs dan ganti konten dengan kode berikut:

    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();
    

Menjalankan aplikasi

dotnet run

Langkah berikutnya