Aufgabe OR-Mapper
This commit is contained in:
25
FahrzeugDatenBank/DatenbankKontext.cs
Normal file
25
FahrzeugDatenBank/DatenbankKontext.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace FahrzeugDatenBank;
|
||||
|
||||
public class DatenbankKontext : DbContext
|
||||
{
|
||||
private readonly string _connectionString;
|
||||
|
||||
public DatenbankKontext(string connectionString)
|
||||
{
|
||||
_connectionString = connectionString;
|
||||
}
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
optionsBuilder.UseMySql(_connectionString, ServerVersion.AutoDetect(_connectionString));
|
||||
}
|
||||
|
||||
public DbSet<FahrzeugDTO> Fahrzeuge { get; set; }
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<FahrzeugDTO>().HasKey(e => e.Id);
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,14 @@
|
||||
namespace FahrzeugDatenBank;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace FahrzeugDatenBank;
|
||||
|
||||
[Table("fahrzeuge")]
|
||||
public class FahrzeugDTO
|
||||
{
|
||||
[Column("id")]
|
||||
public int Id { get; set; }
|
||||
[Column("fahrzeug_name")]
|
||||
public string? Name { get; set; }
|
||||
[Column("fahrzeug_typ")]
|
||||
public string? Typ { get; set; }
|
||||
}
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.17" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.17" />
|
||||
<PackageReference Include="MySqlConnector" Version="2.4.0" />
|
||||
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
47
FahrzeugDatenBank/FahrzeugOrmRepository.cs
Normal file
47
FahrzeugDatenBank/FahrzeugOrmRepository.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
namespace FahrzeugDatenBank;
|
||||
|
||||
public class FahrzeugOrmRepository : IFahrzeugRepository
|
||||
{
|
||||
private readonly DatenbankKontext _kontext;
|
||||
|
||||
public FahrzeugOrmRepository(DatenbankKontext kontext)
|
||||
{
|
||||
this._kontext = kontext;
|
||||
}
|
||||
|
||||
public void AktualisiereFahrzeug(int id, string fahrzeugName, string fahrzeugTyp)
|
||||
{
|
||||
FahrzeugDTO fahrzeug = _kontext.Fahrzeuge.First(f => f.Id == id);
|
||||
fahrzeug.Name = fahrzeugName;
|
||||
fahrzeug.Typ = fahrzeugTyp;
|
||||
_kontext.SaveChanges();
|
||||
}
|
||||
|
||||
public void FuegeFahrzeugEin(string fahrzeugName, string fahrzeugTyp)
|
||||
{
|
||||
_kontext.Fahrzeuge.Add(new FahrzeugDTO() { Name = fahrzeugName, Typ = fahrzeugTyp });
|
||||
_kontext.SaveChanges();
|
||||
}
|
||||
|
||||
public FahrzeugDTO GetFahrzeugByID(int id)
|
||||
{
|
||||
return _kontext.Fahrzeuge.First(f => f.Id == id);
|
||||
}
|
||||
|
||||
public List<FahrzeugDTO> HoleAlleFahrzeuge()
|
||||
{
|
||||
return _kontext.Fahrzeuge.ToList();
|
||||
}
|
||||
|
||||
public void LoescheFahrzeug(int id)
|
||||
{
|
||||
_kontext.Fahrzeuge.Remove(GetFahrzeugByID(id));
|
||||
_kontext.SaveChanges();
|
||||
}
|
||||
|
||||
public List<FahrzeugDTO> SucheFahrzeuge(string searchTerm)
|
||||
{
|
||||
return _kontext.Fahrzeuge.Where(f => f.Name.Contains(searchTerm) || f.Typ.Contains(searchTerm)).ToList();
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace FahrzeugDatenBank;
|
||||
|
||||
public class FahrzeugRepository
|
||||
public class FahrzeugRepository : IFahrzeugRepository
|
||||
{
|
||||
private string _connectionString;
|
||||
|
||||
|
||||
13
FahrzeugDatenBank/IFahrzeugRepository.cs
Normal file
13
FahrzeugDatenBank/IFahrzeugRepository.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
namespace FahrzeugDatenBank
|
||||
{
|
||||
public interface IFahrzeugRepository
|
||||
{
|
||||
void AktualisiereFahrzeug(int id, string fahrzeugName, string fahrzeugTyp);
|
||||
void FuegeFahrzeugEin(string fahrzeugName, string fahrzeugTyp);
|
||||
FahrzeugDTO GetFahrzeugByID(int id);
|
||||
List<FahrzeugDTO> HoleAlleFahrzeuge();
|
||||
void LoescheFahrzeug(int id);
|
||||
List<FahrzeugDTO> SucheFahrzeuge(string searchTerm);
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,9 @@ namespace FahzeugWPF
|
||||
ServiceCollection services = new ServiceCollection();
|
||||
|
||||
services.AddScoped<IKonfigurationsleser>(sp => new Konfigurationsleser(configuration));
|
||||
services.AddScoped(sp => new FahrzeugRepository(sp.GetRequiredService<IKonfigurationsleser>().LiesDBVerebindung()));
|
||||
services.AddScoped(sp => new DatenbankKontext(sp.GetRequiredService<IKonfigurationsleser>().LiesDBVerebindung()));
|
||||
// services.AddScoped<IFahrzeugRepository>(sp => new FahrzeugRepository(sp.GetRequiredService<IKonfigurationsleser>().LiesDBVerebindung()));
|
||||
services.AddScoped<IFahrzeugRepository, FahrzeugOrmRepository>();
|
||||
services.AddScoped<FahrzeugeModell>();
|
||||
services.AddScoped<EinfuegenModel>();
|
||||
services.AddScoped<EinfuegenWindow>();
|
||||
|
||||
@@ -4,9 +4,9 @@ namespace FahzeugWPF;
|
||||
|
||||
class FahrzeugeModell
|
||||
{
|
||||
private readonly FahrzeugRepository _repository;
|
||||
private readonly IFahrzeugRepository _repository;
|
||||
|
||||
public FahrzeugeModell(FahrzeugRepository repository)
|
||||
public FahrzeugeModell(IFahrzeugRepository repository)
|
||||
{
|
||||
this._repository = repository;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user