Mat*_*ieu 3 .net c# entity-framework entity-framework-4
我使用EDMX架构作为我的上下文.在我之前没有使用模式的项目中,我可以像这样更改实体状态:
public void SaveProduct(Product product)
{
if (product.ProductID == 0)
context.Products.Add(product);
else
context.Entry(product).State = EntityState.Modified;
context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
但是在这个项目中,我没有.Entry在我的intellisense中看到(如果我输入它,它就不会建议命名空间引用).
我试图修改一个实体并保存它.它运作正常.
所以我的两个问题是: - 为什么.Entry不再在我的intellisense了? - 我们真的需要用持久的Context来改变实体状态,还是我们可以依赖.Net来做到这一点?
我想之前您使用的是DbContext API,但现在您正在使用ObjectContext API - 这是使用EF的两种不同方式,每种方法都有自己的方法.检查你是否有这个(ObjectContext API):
context.ObjectStateManager.ChangeObjectState(product, EntityState.Modified);
Run Code Online (Sandbox Code Playgroud)
对于您的第二个问题 - 如果您正在使用分离方案,则需要附加实体和设置状态(您的实体实例未被保存的相同上下文实例加载).
| 归档时间: |
|
| 查看次数: |
3287 次 |
| 最近记录: |