C# 将对象添加到上下文EntityFramework 4而不保存更改
当我使用时,有没有一种方法可以在不提交更改的情况下将对象添加到de dataContextC# 将对象添加到上下文EntityFramework 4而不保存更改,c#,entity-framework-4,datacontext,C#,Entity Framework 4,Datacontext,当我使用时,有没有一种方法可以在不提交更改的情况下将对象添加到de dataContext ctx.Articles.AddObject(newart); newart在上下文ctx中没有出现,我能做到的唯一方法是保存更改ctx。保存更改,不幸的是,将更改保存到数据库中,&我不想,有没有办法做到这一点,任何帮助都将被感激
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)
//我们只对物品感兴趣
.ofDbSet
类的type属性。此属性表示上下文当前跟踪的对象(即当前加载和/或本地添加但未删除的所有对象)。访问Local
属性从不执行DB查询
因此,您可以使用ctx.Articles.Local
并获取包含您的newart
对象(以及以前查询加载的任何对象)的数据集。在EF4I上是否有效@MartinStettner我相信是的,但我没有很快找到任何相关信息(目前我只安装了EF5)。但是您应该能够轻松地验证EF4中是否存在Local
属性:如果存在,我非常确定它的工作方式与EF5中的工作方式相同…好的,对不起,我试图找出EF4的解决方案,我很好奇这是否有效:)。。。