2012-02-13 7 views
2

Это сводит меня с ума. Я получаю сообщение об ошибке, чтоМетод DeleteObject отсутствует в Entity Framework 4.1

object doesn't contain definition for DeleteObject.

Вот моя строка кода, которая выдает ошибку:

ctx.Tanks.DeleteObject(Tank); 

Я пытался ссылаться на другой объект из другого edmx файла, который создал мой друг, и тогда все хорошо , DeleteObject есть. Я не думаю, что мне не хватает ссылок в моем проекте.

И сам проект содержит файл edmx, и я использовал DBContext для создания POCOs.

Любые идеи?

+0

Вы используете одну и ту же версию рамки сущности с теми же шаблонами? – Chriseyre2000

ответ

21

DbContext API определяет DbSet s не ObjectSet s. DbSet есть Remove способ нет DeleteObject способ. Вам нужно сначала решить, какой API вы собираетесь использовать. Если это ObjectContext или DbContext.

+0

Спасибо. Я понял это вчера. – bobetko

+0

Итак, с DBContext нет способа удалить родительский элемент и все дочерние элементы, подобные объекту DeleteObject, в Objectcontext? – DavieDave

+0

@DavieDave Вы можете использовать 'DbSet'. Если вы сконфигурировали каскадное удаление для дочерней таблицы, оно автоматически будет удалено. – Eranga

0
[HttpPost] 
     public ActionResult Delete(IEnumerable<int> employeeIdsToDelete) 
     { 
      var lstemployee = _db.StudentEmployees.Where(x => employeeIdsToDelete.Contains(x.Id)); 
      foreach (var item in lstemployee) 
      { 
       _db.StudentEmployees.Remove(item); 
      } 
      _db.SaveChanges(); 

      return RedirectToAction("Index"); 
     } 
+0

Уже был принят ответ на этот пост. Если вы хотите внести свой вклад, пожалуйста, расширьте свой ответ дополнительными деталями и контекстом. – CubeJockey

Смежные вопросы