我正在使用NHibernate将一些对象加载到我的ASP.NET MVC应用程序中。NHibernate - Lazy-Loading原始类型
例如,提交由用户提交的,我想显示的用户名(但只有用户名)的用户的,这样的:
<%= Html.Encode(item.User.UserName) %>
当我加载使用NHibernate提交,用户是从数据库延迟加载的,这意味着实际的SQL查询(加载用户信息)只会在我调用上述代码行时生成和执行(这正是我想要的)。
问题是SQL查询还会选择有关用户的其他信息,如密码,电子邮件等。这些信息显然不是必需的,并且会被丢弃。
SQL查询看起来是这样的:
SELECT id, username, password, email FROM User WHERE Id = 1;
我的结论是NHibernate的只有懒加载引用映射到表在我的数据库的其他对象。它似乎没有延迟加载基本的原始类型,如字符串,整数等。
我可以这样做吗?当选择上面一行代码时,我希望SQL查询看起来像这样:
SELECT username FROM User WHERE Id = 1;
这可能吗?怎么样?