title: NHibernate: Evicting but still having non unique object exception
body: <p>This method is not my best, but had a circular reference issue going on so slapped it together last minute. For some reason, even though I'm evicting the original referenced order on the detail object, I've still got another association with the session. Should I use a get instead? Or even better is there a way to say evict ALL orders with ID = x ?</p>
  
  <pre><code>public DetailDTO SaveNewDetailToOrder(DetailDTO detailDTO)
      {
          var detailReturn = new DetailDTO();
  
          try
          {
              var order = LoadOrderById(detailDTO.OrderId);
              var previousStatus = issue.CurrentDetailStatus;
  
              if (previousStatus != null &amp;&amp; detailDTO.Status.Id != previousStatus.Id)
              {
                  var detail = Mapper.Map&lt;DetailDTO, Detail&gt;(detailDTO);
                  _orderRepository.EvictOrder(detail.DetailOrder);
                  order.Details.Add(detailDTO);
                  order.IsEscalated = false;
                  order.DormantDate = detailDTO.CreatedTime;
  
                  var orderReturn = SaveOrder(order);   ///Error Here
                  if (orderReturn.IsActionSuccessful)
                  {
                      detailReturn =
                          orderReturn.Details.DTOObjects.OrderByDescending(x =&gt; x.CreatedTime).First();
                      SendStatusChangeEmail(orderReturn);
                  }
  
              }
              else
              {
  
                  detailReturn = _detailService.SaveDetail(detailDTO);
              }
  
          }
          catch (Exception ex)
          {
              throw ServiceErrorMessage(ex, detailReturn);
          }
  
          return detailReturn ;
  
      }
  </code></pre>