2

私は、EF CTP4 の NHibernate で使用するプラクティスの多くを複製しようとしています。

現在、一般的なリポジトリ インターフェイスがあります (CTP4 では、DbContext.Set を使用してこれを簡単に行うことができます)。

コンテキストを渡し、StructureMap を使用して HttpRequest ごとにスコープを設定しています。

NHibernate では、ISession (再び StructureMap を使用して作成) を渡しますが、ActionFilter (UnitOfWork) を使用して、リクエストの最後にトランザクションをコミットします。

EF CTP4 に同等のトランザクションはありますか? そうでない場合は、同じフィルターを使用して context.SaveChanges() を呼び出すか、リポジトリ内でこれを行う必要があります。

余談ですが、エンティティが新しいかどうかをテストする最も簡単な方法は何ですか。NH では、ISession.SaveOrUpdate を呼び出すだけで十分です。すべてのエンティティが Guid 識別子を使用していることに注意してください。おそらくデフォルト(Guid)のチェックですか?

ありがとう。

4

1 に答える 1

1

これはあなたが今までに理解した遅い答えであることは知っていますが、検索する人には役立つと思います. Rob conery は、actionfilter と Ef を使用してリクエスト スコープごとにトランザクションを作成することに関する素晴らしい投稿をしています。

ロブ C 記事

そうそう、デフォルト (Guid) をテストする汎用リポジトリに UpdateInsert() メソッドを作成します。

于 2011-06-13T09:50:24.067 に答える