Click here to Skip to main content
15,896,111 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi, I am developing “Gift shopping” web API project, with Entity Framework Code first approach.
In this, I need to add details from shopping cart table to Order table
Order table contains a filed Order Reference in this I need to store string as “Ref-1”(1 means OrderId).
Then add data from Order table to OrderItem table with Order Id.
OrderItem table contains field Order Reference, in this I need to store Order Reference of Order table with count(increased by 1)
Below is the code I tried, this works file when inserting data. But when update , it throws exception as
“Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.”
I need to perform these operation in single transaction that means should use only one unitofwork.commit().

//Insert into Order table
C#
var InsertOrder = _Mapper.Map<InsertOrderRequest, Order>(insertOrderRequest);
if (approvalstatus == false)
    InsertOrder.ApprovalStatusId = (int)enumApprovalStatus.Approved;
else
    InsertOrder.ApprovalStatusId = (int)enumApprovalStatus.WaitingForApproval;
InsertOrder.CreatedDate = System.DateTime.Now;
InsertOrder.OrderDate = System.DateTime.Now;
InsertOrder.OrderReference = "Ref-";
_orderRepository.Add(InsertOrder);
if (item.Quantity< 1)
{
    for (int i = 0; i < item.Quantity; i++)
    {
       var InsertOrderItem = _Mapper.Map<CartItemDto, OrderItem>(item);
        InsertOrderItem.CreatedDate = System.DateTime.Now;
        InsertOrderItem.OrderId = InsertOrder.OrderId;
        InsertOrderItem.Orderref = "Ref-" + InsertOrder.OrderId + "-" + (i + 1);
        InsertOrderItem.Quantity = 1;
        if (approvalstatus == false)
            InsertOrderItem.OrderStatusId = (short)enumOrderStatus.OrderReceived;
        else
            InsertOrderItem.OrderStatusId = (short)enumOrderStatus.AwaitingApproval;
        _orderItemRepository.Add(InsertOrderItem);
        OrderItems.Add(InsertOrderItem);
    }
}
InsertOrder.OrderReference = "Ref-" + InsertOrder.OrderId;
_orderRepository.Update(InsertOrder);
UnitOfWork.Commit();
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900