UPDATE
Nun, jetzt komme ich mir so dumm vor, ich habe vergessen, das Paket von
Microsoft.Entityframeworkcore.tools
in meinem Konsolen-App-Projekt zu installieren. Ich installiere das Paket und es läuft korrekt. Ich weiß nicht, ob das für jemanden hilfreich sein kann, aber ich lasse den Beitrag offen. Grüße!!!
Ich führe einige Tests mit Entity Framework Core in einer .Net Framework-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 das muss ich auch Migrieren Sie die vorhandene Datenbank (
Code: Select all
.dbfTransaktion entsorgen.
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 „EntityFrameworkCore.Data.TiendaContext“ ist in der Datenbank eine Ausnahme aufgetreten.
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();
}
}
}
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");
}
}
Mobile version