EF CORE: Wie kann man mit einem Entität ohne Datenbank-generierte Schlüssel umgehen?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: EF CORE: Wie kann man mit einem Entität ohne Datenbank-generierte Schlüssel umgehen?

by Anonymous » 12 Apr 2025, 19:00

In Entity Framework Core 7 habe ich die folgende Entität: < /p>
[Index(nameof(Time))]
[Table("DataEntries")]
public class DataEntry
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public DateTime Time { get; set; } = DateTime.Now;

public byte StatusCode { get; set; }
}
< /code>
Ich kann erfolgreich neue Einträge einfügen, aber das Aktualisieren oder Löschen eines Eintrags führt immer zu dem folgenden Fehler: < /p>

DBUpDateConcurrencyException beim Aufrufen von Savechangen (). /> < /blockquote>
Hier ist ein minimales Beispiel, das jedes Mal die Ausnahme erzeugt: < /p>
var result = ctx.DataEntries
.Where(t => t.Time >= start && t.Time t.Time).First();
result.StatusCode = 1;

ctx.SaveChanges();
< /code>
Bei weiterer Untersuchung vermute ich nachdrücklich, dass es damit zu tun hat, dass mein Entität einen manuellen Set -Schlüssel hat (und daher keine Identitätsspalte in der Datenbank). Wenn ja, wie? Das Problem hierfür ist, dass die Datenbank bereits viele tausend Zeilen enthält, sodass ich nicht weiß, ob eine einfache Datenbankmigration in diesem Fall funktioniert.

Top