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
|
public class FahrzeugDTO
|
||||||
{
|
{
|
||||||
|
[Column("id")]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
[Column("fahrzeug_name")]
|
||||||
public string? Name { get; set; }
|
public string? Name { get; set; }
|
||||||
|
[Column("fahrzeug_typ")]
|
||||||
public string? Typ { get; set; }
|
public string? Typ { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,10 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<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="MySqlConnector" Version="2.4.0" />
|
||||||
|
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</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;
|
namespace FahrzeugDatenBank;
|
||||||
|
|
||||||
public class FahrzeugRepository
|
public class FahrzeugRepository : IFahrzeugRepository
|
||||||
{
|
{
|
||||||
private string _connectionString;
|
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();
|
ServiceCollection services = new ServiceCollection();
|
||||||
|
|
||||||
services.AddScoped<IKonfigurationsleser>(sp => new Konfigurationsleser(configuration));
|
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<FahrzeugeModell>();
|
||||||
services.AddScoped<EinfuegenModel>();
|
services.AddScoped<EinfuegenModel>();
|
||||||
services.AddScoped<EinfuegenWindow>();
|
services.AddScoped<EinfuegenWindow>();
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ namespace FahzeugWPF;
|
|||||||
|
|
||||||
class FahrzeugeModell
|
class FahrzeugeModell
|
||||||
{
|
{
|
||||||
private readonly FahrzeugRepository _repository;
|
private readonly IFahrzeugRepository _repository;
|
||||||
|
|
||||||
public FahrzeugeModell(FahrzeugRepository repository)
|
public FahrzeugeModell(IFahrzeugRepository repository)
|
||||||
{
|
{
|
||||||
this._repository = repository;
|
this._repository = repository;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user