ObjectContext DeleteObject - PullRequest
       7

ObjectContext DeleteObject

0 голосов
/ 29 декабря 2011

Ниже приведена моя рабочая таблица.

OrderID  ProductID UnitPrice
1        P001      10
1        P002      11
1        P003      12
2        P001      10   

Я использую приведенный ниже код, чтобы удалить все строки, для которых orderID равен 1.

void DeleteOrderMaster(int OrderID)
{ 
        Order _Order = DB.Orders.SingleOrDefault(x => x.OrderID == OrderID);
        DB.Orders.DeleteObject(_Order);
}

В чем заключается моя проблема...

ObjectContext.Table.DeleteObject(entity);

Поскольку я не очень хорошо знаком с функцией DeleteObject, я хочу вызвать эту функцию следующим образом

DeleteOrderMaster(1)

Пожалуйста, дайте мне знать, это правильный путь или нет?

Ответы [ 2 ]

3 голосов
/ 29 декабря 2011

ObjectContext.DeleteObject (объектная сущность) метод удаляет любую сущность, которая не находится в отсоединенном состоянии (контекст объекта не установлен).

void DeleteOrderMaster(int OrderID)
{ 
        Order _Order = DB.Orders.SingleOrDefault(x => x.OrderID == OrderID);
       if(_Order!=null)
         DB.DeleteObject(_Order);
}
1 голос
/ 29 декабря 2011
 Order _Order = DB.Orders.SingleOrDefault(x => x.OrderID == OrderID);
 db.Orders.DeleteObject(_Order);
 db.SaveChanges();

Remove - это метод класса DbSet, который может быть создан только из класса DbContext, который является частью Entity Framework.

EDIT

Майбудь я смущен, что в результате смутило тебяПрежде всего извинения за это.

Теперь, возвращаясь к объяснению, вы действительно используете Entity Framework.Класс ObjectContext, который вы упомянули, и класс DbContext, на который я ссылался, являются частями самой структуры Entity.Класс ObjectContext находится в System.Data.Objects пространстве имен, тогда как DbContext находится в System.Data.Entity пространстве имен.

Оба ObjectContext и DbContext класс предоставляет средства для запроса и работы с данными объекта как объектами.

Теперь, когда какой из них использовать : -

Использовать ObjectContext для версии 4.0 при использовании дизайнерасгенерированная модель и DbContext с моделью 4.1 Code First.Поскольку вы используете конструктор, я бы сказал, что вы используете ObjectContext.

Еще раз извиняюсь за путаницу.Надеюсь, теперь я дал лучший и полный ответ

...