следующий код:
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, поэтому на самом деле SQL Server должен иметь возможность сохранять полнотекстовый запрос в области транзакции.