リポジトリとUnitOfWorkのパターンを正しく実装しているとは100%は確信していませんが、それ以外の仕組みはわかりません。UnitOfWorkのパターンとアトミック操作
たとえば、AppleとOrangeの2つのオブジェクトがあります。 AppleはそのようOrangeIDを経てオレンジに接合されている
は:
public class Apple
{
public int OrangeID { get; set; }
}
私は新しいAppleと新しいオレンジを作成したい、と私は適切なIDのリンクを設定したいです。しかし、私は問題があります。オレンジをデータベースに保存するまで、私はOrangeIDを知らないだろう。
これは、私は次のようになります意味:
var unitOfWork = new UnitOfWork();
Orange newOrange = new Orange();
OrangeRepository.Insert(newOrange);
unitOfWork.Commit();
//newOrange will have been updated with the actual ID
Apple newApple = new Apple(newOrange.ID);
etc...
私は上記の外に座っているトランザクションを持っていない限り、これは、アトミック操作ではありません。しかし、私はそれがUnitOfWorkが扱うはずだったと思ったのですか?または、私のUnitOfWork.Commit()は、データベースに書き込むときに適切な値を割り当てる必要がありますか?
すべてのヘルプ/ヒントをいただければ幸いです、 おかげ ダンカン