EF Core löst eine Ausnahme aus, wenn die SaveChanges-Methode aufgerufen wird [geschlossen]C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 EF Core löst eine Ausnahme aus, wenn die SaveChanges-Methode aufgerufen wird [geschlossen]

Post by Anonymous »

Ich führe einige Tests mit Entity Framework Core in einer .NET-Konsolenanwendung durch. Ich habe meine Lösung in drei Projekte aufgeteilt: eines für meine Modelle, eines für meinen Datenkontext und eines für die Konsolen-App.
Ich verwende den MySQL-Server für die Datenbank und erstelle die Datenbank mit Migrationen so einfach, aber wenn ich versuche, einige Daten in die Datenbank einzufügen, löst meine App beim Aufrufen der SaveChanges-Methode eine Ausnahme aus.
Ich muss eine Unternehmensanwendung erstellen und die vorhandene Datenbank migrieren (

Code: Select all

.dbf
) zu MySQL. Ich versuche, EF Core in einer Konsolenanwendung zu verwenden, in der ich einige Tests durchführe.

Transaktion löschen.

Verbindung zur Datenbank „EntityFrameworkCore“ auf Server „localhost“ wird geschlossen.

Verbindung zur Datenbank „EntityFrameworkCore“ auf Server „localhost“ geschlossen.
Beim Speichern von Änderungen für den Kontexttyp ist in der Datenbank eine Ausnahme aufgetreten 'EntityFrameworkCore.Data.TiendaContext'.
Microsoft.EntityFrameworkCore.DbUpdateException:

Beim Aktualisieren der Einträge ist ein Fehler aufgetreten. Weitere Informationen finden Sie in der inneren Ausnahme.

---> System.MissingFieldException: Es wurde nicht gefunden: 'Microsoft.EntityFrameworkCore.Metadata.Internal.EntityMaterializerSource.ThrowReadValueExceptionMethod'.

Dies ist meine Programmklasse

Code: Select all

class Program
{
static void Main(string[] args)
{
InsertCliente();
}

private static void InsertCliente()
{
using (var ctx = new TiendaContext())
{
var cliente = new Cliente { Nombre = "Pedro" };
ctx.GetService().AddProvider(new MyLoggerProvider());
ctx.Clientes.Add(cliente);
ctx.SaveChanges();
}
}
}
Meine DbContext-Klasse

Code: Select all

public class TiendaContext:DbContext
{
public DbSet Clientes { get; set; }
public DbSet Productos { get; set; }
public DbSet Trasacciones { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasKey(k => new { k.ProductoId, k.TransaccionId });

base.OnModelCreating(modelBuilder);
}

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySQL(
"server=localhost;port=3306;database=EntityFrameworkCore;uid=root;password=408792");
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post