Сохранение изменений / обновление существующего объекта в наборе данных с Entity FrameWork и не нужно устанавливать каждое свойство отдельно - PullRequest
7 голосов
/ 04 октября 2011

Могу ли я сделать что-то подобное ниже (что не работает) без необходимости явно устанавливать каждое свойство объекта. Product - это объект, который создается средством связывания модели по умолчанию из отправки формы, а ProductInDb - это объект в контексте / базе данных, который я хочу переопределить / обновить. Первичный ключ ProductID одинаков для обоих.

var ProductInDb = context.Products.FirstOrDefault(x => x.ProductID == product.ProductID);

                    ProductInDb = product;

                    context.SaveChanges();

1 Ответ

14 голосов
/ 04 октября 2011

Вы можете присоединить существующий product и установить его состояние как Modified.

Если вы используете DbContext API

context.Products.Attach(product);
context.Entry(product).State = EntityState.Modified;

context.SaveChanges();

Для ObjectContext

context.Products.Attach(product);
context.ObjectStateManager.ChangeObjectState(product, EntityState.Modified);

context.SaveChanges();
...