Megosztás a következőn keresztül:


Az EF Core használatának első lépései

Ebben az oktatóanyagban egy .NET-konzolalkalmazást hoz létre, amely adathozzáférést végez egy SQLite-adatbázison az Entity Framework Core használatával.

Az oktatóanyagot a Windowson futó Visual Studio vagy a .NET CLI használatával követheti Windows, macOS vagy Linux rendszeren.

A cikk mintájának megtekintése a GitHubon.

Prerequisites

Telepítse a következő szoftvert:

Új projekt létrehozása

dotnet new console -o EFGetStarted
cd EFGetStarted

Az Entity Framework Core telepítése

Az EF Core telepítéséhez telepítenie kell a megcélzni kívánt EF Core-adatbázis-szolgáltató(k) csomagját. Ez az oktatóanyag azért használja az SQLite-t, mert minden olyan platformon fut, amelyet a .NET támogat. Az elérhető szolgáltatók listáját az Adatbázis-szolgáltatók című témakörben találja.

dotnet add package Microsoft.EntityFrameworkCore.Sqlite

A modell létrehozása

A modellt alkotó környezeti osztály és entitásosztályok definiálása.

  • A projektkönyvtárban hozzon létre Model.cs az alábbi kóddal
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; }
}

Az EF Core egy meglévő adatbázisból is képes visszafejteni a modelleket.

Tipp: Ez az alkalmazás szándékosan egyszerűvé teszi a dolgokat az egyértelműség érdekében. A kapcsolati karakterláncokat nem szabad tárolni az éles alkalmazások kódjában. Előfordulhat, hogy minden C#-osztályt külön fájlba szeretne felosztani.

Az adatbázis létrehozása

Az alábbi lépések migrálással hoznak létre adatbázist.

  • Futtassa az alábbi parancsot:

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

    Ez telepíti a dotnet ef-t és a tervezési csomagot, amely a parancs projekten való futtatásához szükséges. A migrations parancs egy migrálást hoz létre a modell kezdeti tábláinak létrehozásához. A database update parancs létrehozza az adatbázist, és alkalmazza rá az új migrálást.

Létrehozás, olvasás, frissítés & törlés

  • Nyissa meg Program.cs , és cserélje le a tartalmat a következő kódra:

    using System;
    using System.Linq;
    using Microsoft.EntityFrameworkCore;
    
    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" });
    await db.SaveChangesAsync();
    
    // Read
    Console.WriteLine("Querying for a blog");
    var blog = await db.Blogs
        .OrderBy(b => b.BlogId)
        .FirstAsync();
    
    // 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!" });
    await db.SaveChangesAsync();
    
    // Delete
    Console.WriteLine("Delete the blog");
    db.Remove(blog);
    await db.SaveChangesAsync();
    

Az alkalmazás futtatása

dotnet run

Következő lépések