Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NHibernate-延迟加载原语类型_C#_Sql_Asp.net Mvc_Nhibernate_Lazy Loading - Fatal编程技术网

C# NHibernate-延迟加载原语类型

C# NHibernate-延迟加载原语类型,c#,sql,asp.net-mvc,nhibernate,lazy-loading,C#,Sql,Asp.net Mvc,Nhibernate,Lazy Loading,我正在使用NHibernate将一些对象加载到我的ASP.NET MVC应用程序中 例如,提交是由用户提交的,我想显示用户的用户名(但仅显示用户名),如下所示: <%= Html.Encode(item.User.UserName) %> SELECT username FROM User WHERE Id = 1; 我的结论是,NHibernate只延迟加载对映射到数据库中表的其他对象的引用。它似乎不会延迟加载基本的基本类型,如字符串、int等 我可以这样做吗?当选择上面的代码

我正在使用NHibernate将一些对象加载到我的ASP.NET MVC应用程序中

例如,提交是由用户提交的,我想显示用户的用户名(但仅显示用户名),如下所示:

<%= Html.Encode(item.User.UserName) %>
SELECT username FROM User WHERE Id = 1;
我的结论是,NHibernate只延迟加载对映射到数据库中表的其他对象的引用。它似乎不会延迟加载基本的基本类型,如字符串、int等

我可以这样做吗?当选择上面的代码行时,我希望SQL查询如下所示:

<%= Html.Encode(item.User.UserName) %>
SELECT username FROM User WHERE Id = 1;

这可能吗?如何操作?

您需要使用resultTransformer将查询结果映射到要存储它的对象(据我所知,这是您的普通用户DTO类,但减去所有其他字段)


查看第16.1.5节(它的Hibernate,不是NHibernate,但应该仍然适用)是否有不想加载完整对象的原因?除了极少数情况外,没有真正的性能差异

我可以理解不想将密码加载到内存中,尽管它应该被加密,而且可能无论如何都不应该在您的域模型中。在您的情况下,我要做的是将User分为两个类,User和UserProfile(包含密码等),以便您在管理用户帐户时只使用UserProfile对象