Search code examples
c#linqinsert-updatesubmitchanges

SubmitChanges() throws internal server error


public void RejectOrder(string rejectReason, int selectedNewOrderId)
    {
        SFNewOrder sfNewOrder = mdbDataContext.SFNewOrders.FirstOrDefault(x => x.ID == selectedNewOrderId && !x.IsRejected);

        if (sfNewOrder != null)
        {
            sfNewOrder.IsRejected = true;                              
        }

        SFReject sfReject = new SFReject();

        sfReject.SFNewOrderID = sfNewOrder.ID;
        sfReject.RejectReason = rejectReason;
        sfReject.RejectedDate = DateTime.Now;           
        sfReject.RejectedBy = 2;

        mdbDataContext.SFRejects.InsertOnSubmit(sfReject);
        mdbDataContext.SubmitChanges();
    }

Here I want to change IsRejected property in SFNewOrder Table & Insert a new record In SFReject Table. But I m getting

internal server error

...on

mdbDataContext.submitchanges();

Please help... Thanks in advance.


Solution

  • public void RejectOrder(string rejectReason, int selectedNewOrderId, User user)
    {
        SFNewOrder sfNewOrder = mdbDataContext.SFNewOrders.FirstOrDefault(x => x.ID == selectedNewOrderId && !x.IsRejected);
    
        if (sfNewOrder != null)
        {
            sfNewOrder.IsRejected = true;                              
        }
    
        SFReject sfReject = new SFReject();
    
        sfReject.SFNewOrder = sfNewOrder; 
        sfReject.RejectReason = rejectReason;
        sfReject.RejectedDate = DateTime.Now;           
        sfReject.User= user;
    
        mdbDataContext.SFRejects.InsertOnSubmit(sfReject);
        mdbDataContext.SubmitChanges();
    }
    

    As I have 2 foreign keys in SFReject table I need to assign whole object of that tables. Its working :)