Я играю над Add / Attach и борюсь с чем-то.
Если в последних строках моего примера (в случае 2) я получаю ссылку на Entry (entry4) моей сущности состояние в каждом экземпляре записи изменяется. Но если нет записи4 (в случае 1), состояние в каждой записи не изменяется.
var book = new Book
{
BookId = 3,
AuthorName = "Andrzej Sapkowski"
};
var entry1 = context.Entry(book);
// -> entry1.State equals to Detached
var entry2 = context.Attach(book);
// -> entry1.State, entry2.State equal to Unchanged
var entry3 = context.Entry(book);
// -> entry1.State, entry2.State, entry3.State equal to Unchanged
book.Title = "The witcher 1";
СЛУЧАЙ 1 (строка закомментирована)
// var entry4 = context.Entry(book);
// -> NOTHING changed: entry1.State, entry2.State, entry3.State equal to Unchanged
Случай 2 (строка НЕ комментируется)
var entry4 = context.Entry(book);
// -> EVERYTHING changed: entry1.State, entry2.State, entry3.State equal to Modified
Также
entry1!=entry2!=entry3!=entry4
Версии : . Net Core 3.1 , Microsoft.EntityFrameworkCore.SqlServer 3.1.1
Поэтому я не понимаю, как получение ссылки может изменить состояние. Даже если это ошибка, это очень, очень странная ошибка. Что-то изменилось через геттер.
Большое спасибо!