У меня есть несколько проблем при обновлении строки в моей базе данных с использованием 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);
}
Проблема, с которой я столкнулся, заключается в том, что этот код вставляет новую запись в базу данных, хотя элемент модели, который я вставляю при отправке, содержит поле первичного ключа.
Я также пытался повторно присоединить объект модели обратно к источнику данных, но это выдает ошибку, поскольку элемент уже существует.
Будем весьма благодарны за любые указатели в правильном направлении.
UPDATE:
Я использую инъекцию зависимости, чтобы создать экземпляр объекта datacontext следующим образом:
IMyDataContext _db;
public ActivitiesModel(IMyDataContext db)
{
_db = db;
}