Ich möchte mit Hilfe der Entity Framework Tools aus meinem Model eine Datenbank erstellen lassen. Analog zu dieser Anleitung: https://docs.microsoft.com/de-de/ef/core/get-started/?tabs=visual-studio#create-the-database
Dabei erhalte ich bei der Ausführung des Befehls Add-Migration immer folgende Fehlermeldung:
Fehler |
The entity type 'NachrichtMap' requires a primary key to be defined. If you intended to use a keyless entity type call 'HasNoKey()'. |
Ich kann sie mir nicht erklären. Habe mittlerweile alle anderen Entitäten und alle anderen Mappings aus meinem Projekt ausgeschlossen. Auch die Basisklasse Entity (mit der Id) habe ich entfernt, sodass ich nur noch folgende kleine Entität in meinem Projekt habe:
public class Nachricht //: Entity
{
public int Id { get; set; }
public DateTime Erstellungszeitpunkt { get; set; }
public string Ueberschrift { get; set; }
public string Text { get; set; }
}
Theoretisch sollte ein Mapping überflüssig sein. Habe es deshalb ohne Überschreibung der OnModelCreating versucht und auch mit Hilfe einer Mapping-Klasse:
public class NachrichtMap : IEntityTypeConfiguration<Nachricht>
{
public void Configure(EntityTypeBuilder<Nachricht> builder)
{
builder.HasKey(x => x.Id);
//builder.HasNoKey(); //führt zum selben Fehler!
}
}
In meinem Context:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
//modelBuilder.ApplyConfiguration(new NachrichtMap()); //funktioniert auch nicht
modelBuilder.ApplyConfigurationsFromAssembly(typeof(NachrichtMap).Assembly);
}
Ich bin ratlos. Habe schon Visual Studio neu gestartet, einen Rebuild durchgeführt, sogar ein neues Projekt erstellt und dort dasselbe nochmal gemacht.
Bin ich blind? Oder ist da irgendwo ein Bug im Migrationstool?