首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF4 - Context.Entry不可用于更改实体状态

EF4 - Context.Entry不可用于更改实体状态
EN

Stack Overflow用户
提问于 2012-02-23 00:36:22
回答 1查看 3.4K关注 0票数 3

我使用EDMX模式作为我的上下文。在之前的项目中,我没有使用模式,我可以像这样更改实体状态:

代码语言:javascript
复制
public void SaveProduct(Product product)
{
    if (product.ProductID == 0)
        context.Products.Add(product);
    else
        context.Entry(product).State = EntityState.Modified;
    context.SaveChanges();
}

但是在这个项目中,我没有在我的智能感知中看到.Entry (如果我只是键入它,它也不会建议使用命名空间引用)。

我试图修改一个实体并保存它。它工作正常。

所以我的两个问题是:-为什么我的智能感知中不再有.Entry了?-我们真的需要用持久上下文来改变实体状态吗,或者我们能依靠.Net来正确地做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-23 00:48:12

我猜你之前用的是DbContext接口,但现在你用的是ObjectContext接口--这是使用EF的两种不同方式,每种方式都有自己的方式。检查您是否有这个(ObjectContext应用编程接口):

代码语言:javascript
复制
context.ObjectStateManager.ChangeObjectState(product, EntityState.Modified);

对于您的第二个问题-如果您正在使用分离的场景,则需要附加实体并设置状态(您的实体实例不是由保存时相同的上下文实例加载的)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9398977

复制
相关文章

相似问题

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