Не удается вызвать DeleteObject в платформе Entity - отсутствует ссылка на сборку? - PullRequest
7 голосов
/ 20 июля 2011

Я пытаюсь удалить объект в моем приложении Entity Framework MVC3 / Code-first asp.net, но у меня, похоже, нет необходимых опций, так как он вызывает «не содержит определения для DeleteObject»" ошибка.Кто-нибудь знает, если я пропускаю ссылку на сборку.Вот мой код репозитория:

private dbContext db = new dbContext();

public void DeleteAccessDetails(AccessDetails details)
{
     db.DeleteObject(details); //error here as DeleteObject isn't recognised
}

Вот мои ссылки:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MySite.Models;
using System.Data;
using System.Data.Objects;
using System.Web.Mvc;
using System.Data.Entity;

Я думал, что наличие System.Data.Entity было бы достаточно, чтобы вызвать DeleteObject, но intellisense вряд ливызывая любые опции - только Dispose, Entry, SaveChanges и Set

Редактировать: Вот также мой код для доступа к хранилищу:

Repository rep = new Repository();
AccessDetails paymentUpdate = rep.GetPaymentByID(item.AccessDetailsTableID);
rep.DeleteAccessDetails(paymentUpdate);

Редактировать 2: Вот изображение моих ссылокпапка:

enter image description here

Спасибо

Ответы [ 4 ]

24 голосов
/ 26 апреля 2012

DbContext не имеет метода DeleteObject(). Вместо этого используйте метод Remove(), чтобы очистить объект от DbSet, а затем сохраните изменения.

dbContext db = new dbContext(); // Arrange the context

Department dept = db.Departments.Single(p => p.Id == "1"); // Find the item to remove

db.Departments.Remove(dept); // Remove from the context

b.SaveChanges(); // Delete from the database
4 голосов
/ 20 июля 2011

Документация для DbContext в EF4.1, кажется, показывает, что он не включает метод удаления для этого класса: http://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext(v=vs.103).aspx...

Этот вопрос выглядит аналогично - возможно, вам поможет: MVC 3 EF 4.1 dbContext - Удаление объекта данных «один ко многим» с ненулевым отношением внешнего ключа

0 голосов
/ 23 января 2017

В Mvc 5 используйте RemoveRange вместо DeleteObject при удалении списка.

RemoveRange ();

0 голосов
/ 05 октября 2016

Вы можете использовать этот формат:

context.Entry(temp).State = EntityState.Deleted;  

Remove () работает только в DBContext ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...