C# 将对象添加到上下文EntityFramework 4而不保存更改

C# 将对象添加到上下文EntityFramework 4而不保存更改,c#,entity-framework-4,datacontext,C#,Entity Framework 4,Datacontext,当我使用时,有没有一种方法可以在不提交更改的情况下将对象添加到de dataContext ctx.Articles.AddObject(newart); newart在上下文ctx中没有出现,我能做到的唯一方法是保存更改ctx。保存更改,不幸的是,将更改保存到数据库中,&我不想,有没有办法做到这一点,任何帮助都将被感激

当我使用时,有没有一种方法可以在不提交更改的情况下将对象添加到de dataContext

ctx.Articles.AddObject(newart);

newart
在上下文
ctx
中没有出现,我能做到的唯一方法是保存更改
ctx。保存更改
,不幸的是,将更改保存到数据库中,&我不想,有没有办法做到这一点,任何帮助都将被感激

您应该能够通过
ObjectContext
ObjectStateManager
获取当前跟踪的所有对象

var articles = ctx.ObjectStateManager
                    // Get all entries for added/changed/modified entities
                    .GetObjectStateEntries(EntityState.Added |
                                           EntityState.Unchanged |
                                           EntityState.Modified)
                    // select the entity objects from the entries
                    .Select(entry=>entry.Entity)
                    // we're only interested in Article objects
                    .OfType<Article>();
var articles=ctx.ObjectStateManager
//获取添加/更改/修改实体的所有条目
.GetObjectStateEntries(EntityState.Added|
EntityState。未更改|
EntityState.Modified)
//从条目中选择实体对象
.Select(entry=>entry.Entity)
//我们只对物品感兴趣
.of
DbSet
类的type属性。此属性表示上下文当前跟踪的对象(即当前加载和/或本地添加但未删除的所有对象)。访问
Local
属性从不执行DB查询


因此,您可以使用
ctx.Articles.Local
并获取包含您的
newart
对象(以及以前查询加载的任何对象)的数据集。

在EF4I上是否有效@MartinStettner我相信是的,但我没有很快找到任何相关信息(目前我只安装了EF5)。但是您应该能够轻松地验证EF4中是否存在
Local
属性:如果存在,我非常确定它的工作方式与EF5中的工作方式相同…好的,对不起,我试图找出EF4的解决方案,我很好奇这是否有效:)。。。