EF Core kullanmaya başlamaGetting Started with EF Core

Bu öğreticide, Entity Framework Core kullanarak bir SQLite veritabanına yönelik veri erişimi gerçekleştiren bir .NET Core konsol uygulaması oluşturacaksınız.In this tutorial, you create a .NET Core console app that performs data access against a SQLite database using Entity Framework Core.

Windows üzerinde Visual Studio 'yu kullanarak veya Windows, macOS veya Linux üzerinde .NET Core CLI kullanarak öğreticiyi izleyebilirsiniz.You can follow the tutorial by using Visual Studio on Windows, or by using the .NET Core CLI on Windows, macOS, or Linux.

Bu makalenin örneğini GitHub 'Da görüntüleyin.View this article's sample on GitHub.

Ön koşullarPrerequisites

Aşağıdaki yazılımları yükleyin:Install the following software:

Yeni bir proje oluşturmaCreate a new project

dotnet new console -o EFGetStarted
cd EFGetStarted

Entity Framework Core yüklensinInstall Entity Framework Core

EF Core yüklemek için, hedeflemek istediğiniz EF Core veritabanı sağlayıcılarının paketini yüklersiniz.To install EF Core, you install the package for the EF Core database provider(s) you want to target. Bu öğretici, .NET Core 'un desteklediği tüm platformlarda çalıştığı için SQLite kullanır.This tutorial uses SQLite because it runs on all platforms that .NET Core supports. Kullanılabilir sağlayıcıların bir listesi için bkz. veritabanı sağlayıcıları.For a list of available providers, see Database Providers.

dotnet add package Microsoft.EntityFrameworkCore.Sqlite

Modeli oluşturmaCreate the model

Modeli oluşturan bir bağlam sınıfı ve varlık sınıfları tanımlayın.Define a context class and entity classes that make up the model.

  • Proje dizininde aşağıdaki kodla model.cs oluşturunIn the project directory, create Model.cs with the following code
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;

namespace EFGetStarted
{
    public class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder options)
            => options.UseSqlite("Data Source=blogging.db");
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }

        public List<Post> Posts { get; } = new List<Post>();
    }

    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, varolan bir veritabanından bir modele ters mühendislik uygulanabilir.EF Core can also reverse engineer a model from an existing database.

İpucu: Bu uygulama özellikle açıklık açısından basit işler.Tip: This application intentionally keeps things simple for clarity. Bağlantı dizeleri , üretim uygulamaları için kodda depolanmamalıdır.Connection strings should not be stored in the code for production applications. Ayrıca, her C# sınıfını kendi dosyasına bölmek isteyebilirsiniz.You may also want to split each C# class into its own file.

Veritabanını oluşturmaCreate the database

Aşağıdaki adımlar bir veritabanı oluşturmak için geçişleri kullanır.The following steps use migrations to create a database.

  • Aşağıdaki komutları çalıştırın:Run the following commands:

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

    Bu, bir projede komutu çalıştırmak için gerekli olan DotNet EF ve tasarım paketini de yüklüyor.This installs dotnet ef and the design package which is required to run the command on a project. Bu migrations komut, model için ilk tablo kümesini oluşturmak üzere bir geçişi bir geçişe kattı.The migrations command scaffolds a migration to create the initial set of tables for the model. database updateKomut veritabanını oluşturur ve yeni geçişi uygular.The database update command creates the database and applies the new migration to it.

Oluşturma, okuma, güncelleştirme & silmeCreate, read, update & delete

  • Program.cs açın ve içeriğini şu kodla değiştirin:Open Program.cs and replace the contents with the following code:

    using System;
    using System.Linq;
    
    namespace EFGetStarted
    {
        class Program
        {
            static void Main()
            {
                using (var db = new BloggingContext())
                {
                    // 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ırmaRun the app

dotnet run

Sonraki adımlarNext steps