How to tell if any entities in context are dirty with .Net Entity Framework 4.0

后端 未结 4 966
感情败类
感情败类 2020-12-14 18:07

I want to be able to tell if there is any unsaved data in an entity framework context. I have figured out how to use the ObjectStateManager to check the states of existing e

4条回答
  •  爱一瞬间的悲伤
    2020-12-14 18:32

    Via extension method (for every ObjectContext):

    internal static class ObjectContextExtensions
    {
        public static bool IsContextDirty(this ObjectContext objectContext)
        {
            return objectContext
                .ObjectStateManager
                .GetObjectStateEntries(
                    EntityState.Added | 
                    EntityState.Deleted | 
                    EntityState.Modified).Any();
        }
    }
    

    or via partial method (only for your ObjectContext):

    partial class MyModel
    {
        public bool IsContextDirty()
        {
            return ObjectStateManager
                .GetObjectStateEntries(
                    EntityState.Added | 
                    EntityState.Deleted |
                    EntityState.Modified).Any();
        }
    }
    

提交回复
热议问题