- Projekt típus: ASP.NET Core Web API
- Framework: .NET 8.0
- Beállítások:
- Place solutioon and project in the same directory
- Configurate for https
- Enable Open API Support (swagger)
- Use controllers (for MVC...)
-
Nyisd meg a View -> SQL Server Object Explorer menüt a Visual Studio-ban.
-
Csatlakozz az MSSQLLocalDB példányhoz. Az alkalmazás az MSSQLLocalDB példányt használja, ezért győződj meg róla, hogy az adatbázis script MSSQL-kompatibilis.
-
Hozz létre egy új lekérdezést (New Query).
-
Például: Futtasd az alábbi parancsokat az adatbázis létrehozásához és használatához:
-- Adatbázis létrehozása CREATE DATABASE GamerGuideDB; -- Adatbázis használata USE GamerGuideDB; -- Tábla létrehozása CREATE TABLE Players ( PlayerID INT PRIMARY KEY IDENTITY(1,1), Name NVARCHAR(100) NOT NULL, Score INT NOT NULL, JoinDate DATETIME DEFAULT GETDATE() );
Ha a script MySQL-re készült, azt át kell írni MSSQL-re. Példa:
CREATE TABLE players ( player_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, score INT NOT NULL, join_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
CREATE TABLE Players ( PlayerID INT PRIMARY KEY IDENTITY(1,1), Name NVARCHAR(100) NOT NULL, Score INT NOT NULL, JoinDate DATETIME DEFAULT GETDATE() );
- Nyisd meg a Visual Studio-t.
- A menüsorban válaszd ki a Tools menüt.
- Kattints a NuGet Package Manager -> Package Manager Console lehetőségre.
- A konzol megjelenik az alsó panelen.
Futtasd az alábbi parancsokat a NuGet Package Manager Console-ban a szükséges csomagok telepítéséhez:
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Design
Install-Package Microsoft.EntityFrameworkCore.Tools
Generáld a DbContext osztályt és a modelleket az alábbi paranccsal:
Scaffold-DbContext "_MyConnectionString_" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Context _MyDbContext_ -DataAnnotations
- Nyisd meg a SQL Server Object Explorer-t a Visual Studio-ban (View -> SQL Server Object Explorer).
- Csatlakozz az MSSQLLocalDB példányhoz.
- Ha még nincs adatbázisod, hozz létre egyet: SQL Server Object Explorer
- Miután létrehoztad az adatbázist, kattints rá jobb egérgombbal, majd válaszd a Properties (Tulajdonságok) lehetőséget.
- A Properties ablakban keresd meg a Connection String mezőt. Ez tartalmazza az adatbázis kapcsolati sztringjét.
Példa kapcsolati sztring:
Server=(localdb)\MSSQLLocalDB;Database=GamerGuideDB;Trusted_Connection=True;
A kapcsolati sztringet az appsettings.json
fájlban kell megadni.
"ConnectionStrings": {
"DefaultConnection": "_MyConnectionString_"
},
Példa:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=GamerGuideDB;Trusted_Connection=True;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
Regisztráld a DbContext osztályt és engedélyezd a CORS-t a program.cs
fájlban:
var connectionString = builder.Configuration
.GetConnectionString("DefaultConnection");
- Az
appsettings.json
fájlban megadottDefaultConnection
nevű kapcsolati sztringet olvassa be.
builder.Services
.AddDbContext<_MyDbContext_>(opt => opt.UseSqlServer(connectionString));
- Regisztrálja a DbContext osztályt, amely az adatbázis műveletek kezeléséért felelős.
builder.Services.AddCors(
options => options.AddDefaultPolicy(
builder => builder
.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod()
));
- Engedélyezi a CORS-t, hogy az API-t bármely domain elérhesse.
A CORS middleware-t a program.cs
fájl middleware szakaszában kell aktiválni, mielőtt a app.UseHttpsRedirection()
hívás történik.
app.UseCors(); // CORS middleware aktiválása
app.UseHttpsRedirection();
- Helye: A middleware konfigurációs szakaszban, mielőtt a
UseHttpsRedirection()
hívás történik. - Funkciója: Biztosítja, hogy a CORS szabályok alkalmazásra kerüljenek a bejövő HTTP-kérésekre.
Az alábbiakban egy teljes program.cs
fájl látható, amely tartalmazza a CORS regisztrálását és aktiválását:
var builder = WebApplication.CreateBuilder(args);
// Kapcsolati sztring beolvasása
var connectionString = builder.Configuration
.GetConnectionString("DefaultConnection");
// DbContext regisztrálása
builder.Services
.AddDbContext<_MyDbContext_>(opt => opt.UseSqlServer(connectionString));
// CORS engedélyezése
builder.Services.AddCors(
options => options.AddDefaultPolicy(
builder => builder
.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod()
));
// Swagger támogatás hozzáadása
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Middleware-ek
app.UseCors(); // CORS middleware aktiválása (FONTOS: Ez legyen a UseHttpsRedirection előtt!)
app.UseHttpsRedirection();
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.MapControllers();
app.Run();
- Nyisd meg a Controllers mappát a Solution Explorer-ben.
- Kattints jobb egérgombbal a mappára, majd válaszd az Add -> New Scaffolded Item... lehetőséget.
- A megjelenő ablakban válaszd ki az API Controller with actions, using Entity Framework opciót, majd kattints a Add gombra.
- Töltsd ki az alábbi mezőket:
- Model class:
_MyModel_
- Data context class:
_MyDbContext_
- Controller name:
_MyModel_sController
(alapértelmezetten megadott, nem szükséges átnevezni)
- Model class:
- Kattints a Add gombra, és a Visual Studio automatikusan generálja a szükséges kódot.