У меня проблемы с Fluent nHibernate. Я добавил столбец в таблицу, и я подумал, что правильно изменил отображения и связанные объекты данных, чтобы правильно отразить это. Однако, когда я попытался запустить мое приложение снова я постоянно получаю эту ошибку:Как отладить Fluent nHibernate
System.Data.SqlClient.SqlException: Invalid column name 'Workflow_id'.
Я действительно не мог видеть то, что проблема была с изменениями я сделал, так что я вернулся назад к оригинальной версии отображения и объектные файлы данных из исходного элемента управления и удалили столбец-нарушитель из базы данных. Но я все равно получаю ту же ошибку.
Я хотел бы посоветовать, как отладить это. SQL, который получает сообщили об ошибке полу-бессмысленные:
SELECT regions0_.Page_id as Page5_1_, regions0_.Id as Id1_, regions0_.Id as Id27_0_, regions0_.RegionId as RegionId27_0_, regions0_.RegionTemplate_id as RegionTe3_27_0_, regions0_.Workflow_id as Workflow4_27_0_ FROM [Region] regions0_ WHERE regions0_.Page_id=?
И это не будет выполняться, как правильный SQL в любом случае.
Любые идеи относительно того, куда идти отсюда?
Спасибо за ваш ответ - там много полезного материала. Однако похоже, что корень проблемы намного проще - кажется, что nHibernate кэширует много материала на веб-сервере, чего я не знал - я предположил, что он каждый раз перестраивал всю свою базовую структуру. Стоп/запуск экземпляра сервера исправил проблему без изменений кода. –
У нас также есть unittest, которые создают базу данных на сервере CI перед запуском унитатов, а другой для развертывания, которые создают базу данных с фиктивными данными для ручного тестирования. Также есть и другая unittest witch, чтобы сообщить нам, соответствует ли база данных сопоставлениям – isuruceanu