次のコード:トランザクションスコープ内でSQL Server 2008の全文検索が失敗するのはなぜですか?
var foo = Users.Join(
tvf_SearchUsers(queryString),
u => u.User_Id,
s => s.User_Id,
(u, s) => u);
は、フルテキスト検索を利用して、テーブル値関数(tvf_SearchUsers)に基づいて、クエリ文字列に一致するユーザーを選択します。このコードスニペットは、本番環境で使用すると正常に動作する大きなメソッドの一部です。しかし、ロールバック属性を持つMBUnitテストの一部と同じメソッドを呼び出すと、検索で期待した結果が返されません。ロールバック属性を削除すると、正しく機能します。単体テストはダミーのユーザーなどを作成し、ロールバックによってクリーンアップされます。これらの作成されたアイテムは、トランザクションスコープの外にあるかのように、テーブル値関数によって表示されないようです。誰もこれを回避する方法を知っていますか?予想通り、私はTVF進みが簡単クエリで全文検索機能を置き換える場合
は
を更新しました。だから問題は全文検索と関係があります。私はSQL Server 2008を使用しているので、afaik SQL Serverはトランザクションスコープ内でフルテキストクエリを保持できるはずです。
おかげさまで、ありがとうございました...私は実際に2008年にこれを実行しています。私がやっていることの多くは、後でいつでもluceneのようなものに変更される予定ですので、今はオプションではありませんどちらか。単体テストをやり直すには単純なハッキングが必要です。 – LaserJesus