I have used your script to convert my database and it worked perfectly.
For info, I have 18516 orders, 136992 order notes, 72279 addresses etc.
The web site seems to work until I try to checkout. On the last step, when I click confirm button, the web site does not respond and the process consumes a lot of processor.
So I used the debugger to localize the problem and this is what I can see:
In the class BaseEntity, the following code is called thousands of times.
public override bool Equals(object obj)
{
return Equals(obj as BaseEntity);
}
When you look at the details of calls, we find that the obj variable takes values that have nothing to do with the current order. For example I see through all address of my database!! it’s like if the full database was used during the process.
Using stack call, I can see that the last procedure call before this problem starts was
Nop.Data.DLL!Nop.Data.EfRepository<Nop.Core.Domain.Orders.Order>.Insert (Nop.Core.Domain.Orders.Order entity = {Nop.Core.Domain.Orders.Order}) Ligne 35
Finally, I tried to let the process execute during few minutes, and it finished correctly with no errors in more than 4 minutes. So I think it's not visible on small databases...
To test this, start a checkout process with debug and stop just before clic on confirm.
Put a breakpoint on class EfRepository<T> ---- void Insert(T entity)
click confirm
Put a breakpoint on class BaseEntity ---- bool Equals(object obj)
continue debugging and watch obj variable
Does anybody have the same issue?
Thanks for your help