내 원래 질문은 here입니다.EF 저장소가있는 누적 루트에서 자식 개체 삭제
아래는 나의 업데이트 코드입니다.
Public Function StockTransferItemRemove(removeRequest As StockTransferItemRequest) As StockTransferItemResponse Implements IStockTransferService.StockTransferItemRemove
' create your objects
Dim removeResponse = New StockTransferItemResponse
Dim stockTransfer As New StockTransfer
Dim stockTransferItem As New StockTransferItem
Try
' get the aggregate root
stockTransfer = _stockTransferRepository.FindBy(removeRequest.StockTransferID).FirstOrDefault
stockTransfer.RemoveItem(removeRequest.StockTransferItemView.Id)
_stockTransferRepository.Save(stockTransfer)
Dim count As Integer = _uow.WMSCommit()
If (count > 0) Then
' the object was saved succesfully
removeResponse.Success = True
Else
' the object was not saved successfully
removeResponse.BrokenRules.Add(New BusinessRule(String.Empty, String.Empty, Tags.Messages.Commit_Failed))
End If
Catch ex As Exception
' an unexpected error occured
removeResponse.BrokenRules.Add(New BusinessRule(String.Empty, String.Empty, ex.Message))
End Try
Return removeResponse
End Function
작업 단위 (UOW)가 커미트를 시도하면 다음 오류 메시지가 생성됩니다.
The operation failed: The relationship could not be changed because one or more of
the foreign-key properties is non-nullable. When a change is made to a relationship,
the related foreign-key property is set to a null value. If the foreign-key does not
support null values, a new relationship must be defined, the foreign-key property must
be assigned another non-null value, or the unrelated object must be deleted.
내가 알고 내가 StockTransfer.RemoveItem()를 사용하여이 컬렉션에서 항목을 제거하는 것이하지만 내가 오류가 발생하고 왜 데이터베이스에 기록을 유지합니다.
루트 루트에서 하위 개체를 제거하고 집계 루트를 유지하는 방법이 있습니까?
관계 테이블의 모든 레코드를 제거하고 싶지는 않습니다. 특정 항목 만 삭제하려고합니다. – user1180223