Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:csharp:dotnetcore:web_api:sqlite

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
oktatas:programozas:csharp:dotnetcore:web_api:sqlite [2022/03/19 01:07] – [Az adatbázisfájl a projekt alapkönyvtárába] adminoktatas:programozas:csharp:dotnetcore:web_api:sqlite [2024/03/18 11:16] (aktuális) – [.Net Core Web SQLite] admin
Sor 4: Sor 4:
  
   * **Szerző:** Sallai András   * **Szerző:** Sallai András
-  * Copyright (c) Sallai András2022+  * Copyright (c) 2022, Sallai András 
 +  * Szerkesztve: 2022, 2023, 2024
   * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]   * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
   * Web: https://szit.hu   * Web: https://szit.hu
Sor 268: Sor 269:
 Így nincs szükség a Microsoft.Extensions.PlatformAbstractions függőségre. Így nincs szükség a Microsoft.Extensions.PlatformAbstractions függőségre.
  
 +===== Példa migráció nélkül =====
 +
 +==== Projekt létrehozása ====
 +
 +  dotnet new webapi -n sqlitepelda
 +  code -r sqlitepelda
 +
 +
 +Ebben a példában nem használunk adatbázis migárciót.
 +==== Telepítés ====
 +
 +  dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 7.0.10
 +
 +  dotnet add package Microsoft.EntityFrameworkCore
 +
 +==== SQLite fájl neve ====
 +
 +<code javascript appsettings.json>
 +{
 +  "Logging": {
 +    "LogLevel": {
 +      "Default": "Information",
 +      "Microsoft.AspNetCore": "Warning"
 +    }
 +  },
 +  "AllowedHosts": "*",
 +  "ConnectionStrings": {
 +    "database": "database"
 +  }
 +}
 +</code>
 +
 +==== SQLite adatbázis beépítése ====
 +
 +<code csharp Program.cs>
 +//...
 +builder.Services.AddDbContext<Database>(options => {
 +    var config = builder.Configuration;
 +    var connectionString = config.GetConnectionString("database");
 +    options.UseSqlite($"Data Source={connectionString}.db");
 +});
 +//...
 +</code>
 +
 +
 +==== Adatbázis és modell kötése ====
 +
 +<code csharp Data/Database.cs>
 +using hello.Models;
 +using Microsoft.EntityFrameworkCore;
 +
 +
 +namespace hello.Data;
 +
 +public class Database: DbContext
 +{
 +    public DbSet<Employee> Employees { get; set; } = null!;
 +    public Database(DbContextOptions<Database> options): base(options) {}
 +}
 +</code>
 +
 +==== Kontroller ====
 +
 +  dotnet-aspnet-codegenerator controller -name EmployeeController -outDir Controllers -api
 +
 +
 +<code csharp Controllers/EmployeeController.cs>
 +using hello.Data;
 +using hello.Models;
 +
 +using Microsoft.AspNetCore.Mvc;
 +using Microsoft.EntityFrameworkCore;
 +
 +namespace hello.Controllers
 +{
 +    [Route("api/[controller]")]
 +    [ApiController]
 +    public class EmployeeController : ControllerBase
 +    {
 +        private readonly Database _database;
 +        public EmployeeController(Database database)
 +        {
 +            _database = database;
 +        }
 +
 +        [HttpGet]
 +        public async Task<ActionResult<List<Employee>>> Get()
 +        {
 +            return Ok(await _database.Employees.ToListAsync());
 +        }
 +
 +    }
 +}
 +</code>
 +
 +==== Model létrehozása ====
 +
 +<code csharp Models/Employee.cs>
 +namespace hello.Models;
 +
 +public class Employee
 +{
 +    public int Id { get; set; }
 +    public string? Name { get; set; }
 +    public string? City { get; set; }
 +    public double Salary { get; set; }
 +}
 +
 +</code>
 +
 +==== Hozzuk létre az SQLite adatbázist ====
 +
 +Például sqlite3 shellben:
 +
 +<code mysql>
 +create table employees (
 +    id integer not null primary key autoincrement,
 +    name text,
 +    city text,
 +    Salary real
 +);
 +</code>
 +
 +
 +A Dotnet Core alkalmazás olyan néven keresi a táblát és a mezőneveket, amit a modellben megadtunk, esetünkben az Employee.cs fájlban. A kis- és nagybetűt azonban nem veszi figyelembe, így az adatbázisban lehetnek akár kisbetűvel is.
 +
 +==== Tesztelés ====
 +
 +HTTPie teszt:
 +
 +  http http://localhost:5214/api/employee
  
oktatas/programozas/csharp/dotnetcore/web_api/sqlite.1647648440.txt.gz · Utolsó módosítás: 2022/03/19 01:07 szerkesztette: admin