Может быть несколько причин для чего-то подобного, проверьте следующее:
- A
<class>
с фильтром where
.
- A
<discriminator>
с атрибутом force="true"
.
- A
<join>
отображение, которое не совпадает на одной стороне и не указано как optional="true"
.
- Пользовательский
<loader query-ref="...">
для сущности.
- A
<filter>
на объекте, включенном через session.EnableFilter
.
- Класс
Protein
не сопоставлен с таблицей Protein
.
- Вы можете иметь 2 таблицы с именем
Protein
в разных схемах, поэтому NHibernate запрашивает foo.Protein
, а ваш sql запрашивает dbo.Protein
.
После этого он начинает становиться все более эзотерическим, например, используя собственные диалекты, тупилизаторы сущностей и т. Д.
Один простой способ увидеть, что происходит - посмотреть на выдаваемый SQL, вы можете сделать это:
- Настройка
<property name="show_sql" value="true"/>
и просмотр консоли / регистратора.
- Использование инструмента профилирования для вашего сервера (например, SQL Server Profiler для MSSQL).
- Использование NHibernate Profiler