У меня возникли проблемы с обновлением строки в моей базе данных с использованием Linq2Sql.Обновление строки базы данных из модели
Внутри моей модели у меня есть два способа обновления и сохранения с моего контроллера, который, в свою очередь, получает обновленную модель из моего представления.
Мои методы модели, такие как, как:
public void Update(Activity activity)
{
_db.Activities.InsertOnSubmit(activity);
}
public void Save()
{
_db.SubmitChanges();
}
и код в мой контроллер любит, как:
[HttpPost]
public ActionResult Edit(Activity activity)
{
if (ModelState.IsValid)
{
UpdateModel<Activity>(activity);
_activitiesModel.Update(activity);
_activitiesModel.Save();
}
return View(activity);
}
Проблема у меня в том, что этот код вставляет новую запись в базу данных , хотя элемент модели, который я вставляю-в-submit, содержит поле первичного ключа.
Я также попробовал повторное прикрепление объекта модели к источнику данных, но это вызывает ошибку, поскольку элемент уже существует.
Любые указатели в правильном направлении будет принята с благодарностью.
UPDATE:
Я использую инъекции зависимостей, чтобы создать экземпляр моего объекта DataContext следующим образом:
IMyDataContext _db;
public ActivitiesModel(IMyDataContext db)
{
_db = db;
}
Возможно, я ошибаюсь, но я собираюсь предположить, что проблема заключается в том, как создается экземпляр datacontext. – Ahmad
Привет, Ахман. Контекст моей информации создается с помощью DI. Я обновляю свой вопрос с помощью кода создания экземпляра. –
Хотя использование DI, что такое стиль жизни datacontext, переходный процесс, singleton, per-web-запрос и т. Д. Возможно, образ жизни выбранного вами контейнера DI по умолчанию действует, если вы не указали его. Я угадываю Вот :) – Ahmad