Я использую NHibernate для загрузки некоторых объектов в мое приложение ASP.NET MVC.NHibernate - Lazy-Loading primitive type
Например, представление подается пользователем, и я хочу, чтобы отобразить имя пользователя (но только имя пользователя) пользователя, например:
<%= Html.Encode(item.User.UserName) %>
Когда я загружаю представление с использованием NHibernate, пользователь загружается из базы данных, что означает, что фактический SQL-запрос (для загрузки пользовательской информации) будет генерироваться и исполняться только при вызове указанной выше строки кода (именно этого я и хочу).
Проблема заключается в том, что SQL-запрос также выбирает другую информацию о пользователе, такую как пароль, электронная почта и т. Д. Эта информация, очевидно, не нужна и отбрасывается.
SQL-запрос выглядит следующим образом:
SELECT id, username, password, email FROM User WHERE Id = 1;
я делаю вывод, что NHibernate только ленивые нагрузки ссылки на другие объекты, которые отображаются в таблицы в моей базе данных. Это не похоже на ленивые нагрузки базовых, примитивных типов, таких как строки, ints и т. Д.
Могу ли я это сделать? Когда выбрана строка выше, я хотел бы, чтобы SQL-запрос выглядел примерно так:
SELECT username FROM User WHERE Id = 1;
Возможно ли это? Как?