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; }
}
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();
'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();
Vielen Dank im Voraus!