实体框架取消在EntityCollection中添加/删除的项目

时间:2015-11-27 09:21:37

标签: c# entity-framework

我有一个由实体框架(cordova prepare android --verbose)创建的类。它有另一个类(Document)的集合。

FileInfo

用户现在可以通过gui向集合(/// <summary> /// No Metadata Documentation available. /// </summary> [EdmEntityTypeAttribute(NamespaceName="DocumentManagerModel", Name="DocumentContainer")] [Serializable()] [DataContractAttribute(IsReference=true)] public partial class DocumentContainer : EntityObject { ... /// <summary> /// No Metadata Documentation available. /// </summary> [XmlIgnoreAttribute()] [SoapIgnoreAttribute()] [DataMemberAttribute()] [EdmRelationshipNavigationPropertyAttribute("DocumentManagerModel", "FK__FileInfo__00000000000018FA", "FileInfo")] public EntityCollection<FileInfo> FileInfoes { get { return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<FileInfo>("DocumentManagerModel.FK__FileInfo__00000000000018FA", "FileInfo"); } set { if ((value != null)) { ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<FileInfo>("DocumentManagerModel.FK__FileInfo__00000000000018FA", "FileInfo", value); } } } ... } )添加或删除项目。 gui表单有一个取消按钮。如何设置重置集合中的所有更改?

1 个答案:

答案 0 :(得分:1)

只要您没有调用dbcontext.SaveChanges(),就不会将任何内容保存到数据库中。当他们点击取消按钮时,我只是处理dbcontext并创建一个新的,如果我是你。

致电

dbcontext.Entry(myEntity).CurrentValues.SetValues(dbcontext.Entry(myEntity).OriginalValues); 
dbcontext.Entry(myEntity).State = EntityState.UnChanged;

也应该这样做。