Es wurde versucht, eine Entität zu aktualisieren oder zu löschen, die nicht im Store vorhanden istC#

Ein Treffpunkt für C#-Programmierer
Guest
 Es wurde versucht, eine Entität zu aktualisieren oder zu löschen, die nicht im Store vorhanden ist

Post by Guest »

Ich habe ein Problem mit den Navigationseigenschaften von EF Core 3.x und One-To-Many, die ich in früheren Versionen nicht hatte.

Bedenken Sie den folgenden Code :

Code: Select all

public class Book
{

public Book()
{
this.Id = Guid.NewGuid();
this.Authors = new List();
}

public virtual Guid Id { get; protected set; }

public virtual ICollection Authors { get; set; }

public void AddAuthor(Author author)
{
author.BookId = this.Id;
this.Authors.Add(author);
}

}

public class Author
{

public Author()
{
this.Id = Guid.NewGuid();
}

public virtual Guid Id { get; protected set; }

public virtual Guid BookId { get; set; }

public virtual Book Book { get; set; }

}
In früheren EF-Versionen (z. B. 2.2) konnte Folgendes getan werden:

Code: Select all

var book = new Book();
context.Books.Add(book);
context.SaveChanges();
book = context.Books.First();
var author = new Author();
book.Authors.Add(author);
context.SaveChanges();
Jetzt löst derselbe Code nach dem Update auf EF Core 3.x beim letzten SaveChanges()-Aufruf die folgende Ausnahme aus, und ich kann es wirklich nicht herausfinden Warum:

'Es wurde versucht, eine Entität zu aktualisieren oder zu löschen, die nicht im Store vorhanden ist.'
Wenn ich den ChangeTracker von DbContext überprüfe, dann tatsächlich Achten Sie darauf, dass die Entität „Autor“ als „Geändert“ und nicht als „Hinzugefügt“ markiert ist.

Das Folgende funktioniert jedoch einwandfrei:

Code: Select all

  var book = new Book();
context.Books.Add(book);
context.SaveChanges();
book = context.Books.First();
var author = new Author() { BookId = book.Id };
context.Authors.Add(author);
context.SaveChanges();
Was ist los? Ich habe über möglicherweise bahnbrechende Änderungen in 3.x gelesen, konnte aber keine Erwähnung/Lösung für dieses Problem finden. Hat jemand eine Idee?

Vielen Dank im Voraus!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post