Adding a new property to an entity: I can't add properly to product attributes mapping.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
7 years ago
Hi, to block certain product combinations of being choosen I need to add a property to product attributes mapping,but I'm with the stupid problem of not being able of knowing where I fail.

I'm following this guide but I'm getting errors when I try to load the attributes or modigy them. Also when I load any product with attributes.

I don't know why that happends, I'm getting this error:



[ConstraintException: The 'bloquear' property on 'ProductAttributeMapping' could not be set to a 'null' value. You must set this property to a non-null value of type 'System.Boolean'. ]
   System.Data.Entity.Core.Common.Internal.Materialization.ErrorHandlingValueReader`1.GetValue(DbDataReader reader, Int32 ordinal) +174
   lambda_method(Closure , Shaper ) +631
   System.Data.Entity.Core.Common.Internal.Materialization.Shaper.HandleEntityAppendOnly(Func`2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet) +238
   lambda_method(Closure , Shaper ) +432
   System.Data.Entity.Core.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper) +374
   System.Data.Entity.Core.Common.Internal.Materialization.SimpleEnumerator.MoveNext() +91
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +524
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +70
   Nop.Services.Catalog.<>c__DisplayClass9.<GetProductAttributeMappingsByProductId>b__8() in c:\Users\Gabri\Source\Workspaces\Isegurola\NopCommerce\Libraries\Nop.Services\Catalog\ProductAttributeService.cs:290
   Nop.Core.Caching.CacheExtensions.Get(ICacheManager cacheManager, String key, Int32 cacheTime, Func`1 acquire) in c:\Users\Gabri\Source\Workspaces\Isegurola\NopCommerce\Libraries\Nop.Core\Caching\Extensions.cs:42
   Nop.Core.Caching.CacheExtensions.Get(ICacheManager cacheManager, String key, Func`1 acquire) in c:\Users\Gabri\Source\Workspaces\Isegurola\NopCommerce\Libraries\Nop.Core\Caching\Extensions.cs:23
   Nop.Services.Catalog.ProductAttributeService.GetProductAttributeMappingsByProductId(Int32 productId) in c:\Users\Gabri\Source\Workspaces\Isegurola\NopCommerce\Libraries\Nop.Services\Catalog\ProductAttributeService.cs:284
   Nop.Web.Controllers.ProductController.PrepareProductDetailsPageModel(Product product, ShoppingCartItem updatecartitem, Boolean isAssociatedProduct) in c:\Users\Gabri\Source\Workspaces\Isegurola\NopCommerce\Presentation\Nop.Web\Controllers\ProductController.cs:617
   Nop.Web.Controllers.ProductController.ProductDetails(Int32 productId, Int32 updatecartitemid) in c:\Users\Gabri\Source\Workspaces\Isegurola\NopCommerce\Presentation\Nop.Web\Controllers\ProductController.cs:1000
   lambda_method(Closure , ControllerBase , Object[] ) +198
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +229
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +35
   System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +39
   System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +71
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +42
   System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +72
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +386
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +386
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +386
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +386
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +386
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +386
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +386
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +386
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +42
   System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +38
   System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +186
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +38
   System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +29
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +67
   System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +53
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36
   System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +38
   System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +44
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +67
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +38
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +399
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +157


I followed that guide, but I don't know if I'm forgetting some file because this is a little bit more complex than the category one. Thanks for your attention
also, here is a pic of my log:


7 years ago
The error message seems to indicate the problem:

  The 'bloquear' property on 'ProductAttributeMapping' could not be set to a 'null' value. You must set this property to a non-null value of type 'System.Boolean'.

What value are you setting the 'bloquear' property with?


(P.S.  It is convention that properties start with an uppercase letter :)
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.