Зачем использовать Attach для обновления Entity Framework 6?
При поиске лучших практических возможностей выполнения операции CRUD через EF я заметил, что настоятельно рекомендуется использоватьAttach()
или жеFind()
методы перед обновлением объекта. Он работает хорошо, и согласно документации EF эти методы извлекают сущность в контекст, который для меня вполне понятен. Но следующий код сбил меня с толку
public void Update(object entity)
{
Record record = new Record() {
id = 1,
value = 5
};
using (SomeContext ctx = new SomeContext())
{
ctx.Entry(record).State = EntityState.Modified;
ctx.SaveChanges();
}
}
Предположим, у нас есть запись с id = 1 в базе данных. При этом условии приведенный выше код обновит запись (установите значение 5). Вопрос в том, почему это работает? И тогда почему я должен использоватьAttach()
?. Насколько я понимаю, запись никак не связана с контекстом. Я прочитал соответствующие главыэтот книга иучебник но они используют 2-запросный подход. Также я занимался серфингом ТАК, но не нашел ответа на свой вопрос. Помогите мне с объяснениями или хорошими материалами, пожалуйста.