次のコードを使用して、リポジトリで特定のMatrixを検索し、それをShuttleプロパティに割り当てます。
var requestRepository = unitOfWork.Create<Request>();
var matrixRepository = unitOfWork.Create<Matrix>();
...
var matrix = matrixRepository.Find(m => m.MatrixID == matrixID).FirstOrDefault();
request.Shuttle = matrix;
....
これは機能します。別の方法を試します。次のコードを使用して、Matrixオブジェクトを準備し、リポジトリにアタッチしようとします。
var requestRepository = unitOfWork.Create<Request>();
var matrixRepository = unitOfWork.Create<Matrix>();
...
var matrix = new Matrix { MatrixID = matrixID };
matrixRepository.Attach(matrix);
request.Shuttle = matrix;
....
これは機能しません。attachステートメントで、エラーが発生しました。同じキーを持つオブジェクトがObjectStateManagerにすでに存在します。
誰かが私を説明できますか?
ありがとう。