< .Net Core

MariaDB elérése EntityFrameworkCore

Szerző: Sallai András

Copyright © 2023, Sallai András

Szerkesztve: 2023

Licenc: 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 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<Book> 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)