2
這種方法不是我最好的,但有一個循環引用問題,所以最後一分鐘把它放在一起。出於某種原因,即使我正在清除細節對象上的原始引用順序,但我仍然與該會話有關聯。我應該使用get嗎?或者更好的是有沒有辦法說驅逐ID = x的所有訂單?NHibernate:退卻,但仍然有非唯一的對象異常
public DetailDTO SaveNewDetailToOrder(DetailDTO detailDTO)
{
var detailReturn = new DetailDTO();
try
{
var order = LoadOrderById(detailDTO.OrderId);
var previousStatus = issue.CurrentDetailStatus;
if (previousStatus != null && detailDTO.Status.Id != previousStatus.Id)
{
var detail = Mapper.Map<DetailDTO, Detail>(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 => x.CreatedTime).First();
SendStatusChangeEmail(orderReturn);
}
}
else
{
detailReturn = _detailService.SaveDetail(detailDTO);
}
}
catch (Exception ex)
{
throw ServiceErrorMessage(ex, detailReturn);
}
return detailReturn ;
}
更好地「瞭解正在發生的事情是不是尋找更好的解決方法」絕對同意,我們以往開發週期就這個問題和測試。試圖讓它回到BAs,以便他們可以在研究時根據這個測試其他功能。 – Seth