首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ObjectContext DeleteObject

ObjectContext DeleteObject
EN

Stack Overflow用户
提问于 2011-12-29 14:43:56
回答 2查看 1.3K关注 0票数 0

下面是我的工作台。

代码语言:javascript
运行
复制
OrderID  ProductID UnitPrice
1        P001      10
1        P002      11
1        P003      12
2        P001      10   

我使用下面的代码删除orderID为1的每一行。

代码语言:javascript
运行
复制
void DeleteOrderMaster(int OrderID)
{ 
        Order _Order = DB.Orders.SingleOrDefault(x => x.OrderID == OrderID);
        DB.Orders.DeleteObject(_Order);
}

我的问题是..。

代码语言:javascript
运行
复制
ObjectContext.Table.DeleteObject(entity);

因为我不太熟悉DeleteObject函数,所以我想这样调用该函数

代码语言:javascript
运行
复制
DeleteOrderMaster(1)

请告诉我这条路对不对?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-29 15:07:50

代码语言:javascript
运行
复制
 Order _Order = DB.Orders.SingleOrDefault(x => x.OrderID == OrderID);
 db.Orders.DeleteObject(_Order);
 db.SaveChanges();

Remove是DbSet类的一种方法,它只能从实体框架中的DbContext类创建。

编辑

可能是我把自己搞糊涂了,结果把你搞糊涂了。首先,我为此道歉。

现在,回到解释,您确实在使用实体框架。您提到的ObjectContext类和我提到的DbContext类都是实体框架本身的一部分。ObjectContext类位于System.Data.Objects名称空间中,而DbContext位于System.Data.Entity名称空间中。

ObjectContext和DbContext类都提供了将实体数据作为对象进行查询和处理的工具。

现在,何时使用哪个 :-

当使用设计器生成的模型和具有4.1 Code First模型的DbContext时,请将ObjectContext用于4.0版。既然你使用的是designer,我建议你使用ObjectContext。

再次为造成的混乱道歉。希望,现在我已经给出了一个更好更完整的答案。

票数 1
EN

Stack Overflow用户

发布于 2011-12-29 15:00:46

ObjectContext.DeleteObject(object entity)方法删除任何未处于分离状态的实体(未设置对象上下文)。

代码语言:javascript
运行
复制
void DeleteOrderMaster(int OrderID)
{ 
        Order _Order = DB.Orders.SingleOrDefault(x => x.OrderID == OrderID);
       if(_Order!=null)
         DB.DeleteObject(_Order);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8664764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档