我正在使用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;
這可能嗎?怎麼樣?