[[oktatas:programozás:csharp:dotnetcore|< .Net Core]] ====== MariaDB elérése EntityFrameworkCore ====== * **Szerző:** Sallai András * Copyright (c) 2023, Sallai András * Szerkesztve: 2023 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== Függőség telepítése ===== Szükségünk van az EntityFrameworkCore.MySql-re. dotnet new console -o app01 cd app01 dotnet add package Pomelo.EntityFrameworkCore.MySql ===== Adatbázis ===== Követelmény: Lenni kell egy Id mezőnek, vagy egy olyan mezőnek amiben benne van az id szó. Lehet például BookId is. Kisbetű, nagybetű nem számít a mezőnevek esetén. A táblanév esetén viszont igen. Mivel az C# nyelvben az osztály nevek és az adattagok nevének első betűje nagybetű, így ajánlott ehhez igazodni. create database konyvesbolt; use konyvesbolt; create table Books ( Id int not null primary key auto_increment, Cim varchar(50), Szerzo varchar(50) ); ===== Entity és Context ===== public class Book { public int Id { get; set; } public string Cim { get; set; } = ""; public string Szerzo { get; set; } = ""; } using Microsoft.EntityFrameworkCore; class Context : DbContext { string str = "Server=localhost; User ID=konyvesbolt; Password=titok; Database=konyvesbolt"; public DbSet Books { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseMySql(str, ServerVersion.AutoDetect(str)); } } ===== Új könyv felvétele ===== Console.WriteLine("Új könyv felvétele"); var database = new Context(); var book = new Book { Cim = "Váratás", Szerzo = "Csengő" }; database.Books.Add(book); database.SaveChanges(); ===== Lekérdezés ===== Console.WriteLine("Könyvek lekérdezése..."); var context = new Context(); var books = context.Books .ToList(); foreach(var book in books) { Console.WriteLine($"{book.Cim}:{book.Szerzo}"); } ===== Linkek ===== * https://mysqlconnector.net/tutorials/efcore/ (2023) * https://learn.microsoft.com/hu-hu/ef/core/ (2023)