The ObjectStateManager does not contain an ObjectStateEntry with a reference to an object of type 'System.Data.Entity.DynamicProxies.Order_589F83608F1

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
13 лет назад
hi, I need a function to return pending orders in a new task
So ,in OrderManger class I wrote

public static List<Order> GetPendingUnpaidOrders(DateTime olderThan)
{
      var context = ObjectContextHelper.CurrentObjectContext;
            var query = (IQueryable<Order>)context.Orders;
            query = query.Where(o => !o.Deleted);
            query = query.Where(o => o.OrderStatusId == (int)OrderStatusEnum.Pending);
            query = query.Where(o => o.CreatedOn < olderThan);
            var orders = query.ToList();
            return orders;

}


OR

public static List<Order> GetPendingUnpaidOrders()
{
           var context = ObjectContextHelper.CurrentObjectContext;
            var query = from o in context.Orders
                        where o.OrderStatusId == (int)OrderStatusEnum.Pending
                        select o;
            var orders = query.ToList();
            return orders;
}

When using this function as  var x = OrderManager.GetPendingUnpaidOrders(olderThan); & try to use x,
I get this exception: The ObjectStateManager does not contain an ObjectStateEntry with a reference to an object of type 'System.Data.Entity.DynamicProxies.Order_589F83608F10B7B05E43531AECECE1B3446441C760E066177C94F2FD6008481C'.


Can any one plesae tell me what ,I'm missing?
13 лет назад
Thanks all !

I think I found it,

modify constructor of  class NopObjectContext  by this line:

this.ContextOptions.ProxyCreationEnabled = false;//<<<<<<<<<<<<<



/// <summary>
        /// Creates a new instance of the NopObjectContext class
        /// </summary>
        /// <param name="connectionString">Connection String</param>
        public NopObjectContext(string connectionString)
            : base(connectionString, "NopEntities")
        {
            _entitySets = new Dictionary<Type, object>();
            

            this.ContextOptions.ProxyCreationEnabled = false;//<<<<<<<<<<<<<

            this.ContextOptions.LazyLoadingEnabled = true;
        }
13 лет назад
thanks Keem,

I had the same issue. Now it is solved
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.