[[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)