我正在为我的应用程序写入数据库日志。表中的字段之一是userprofile_id
引用用户名。这是一个可为空的字段,因为有些内容会在没有用户上下文的情况下写入日志。
在 NHibernate 中,要收集用户名,我确实不能查看引用列,而是查看引用的对象。在大多数情况下,这很好。如果为空,则没有用户名。因此,当尝试显示与日志关联的用户名时,我实际上必须引用Log.User.UserName
.
扭曲之处在于我有一个系统帐户,它具有一组严格的权限,并且没有关联的用户配置文件来通过 api 接口调用自动化任务。userprofile_id
它以system的形式写入日志,这在我的UserProfiles
表中不存在。
为了使这项工作,我不得不删除日志表和UserProfiles
表之间的外键,但是数据被记录了,NHibernate 似乎并不关心。它只是将UserProfile
对象报告为 null,这在技术上是正确的。
我实际上希望userprofile_id
通过 NHibernate 查看该字段的文本,即使它不会加入到UserProfiles
表中,所以我可以区分没有用户上下文的日志条目和具有系统函数上下文的日志条目。
在 (N)Hibernate 中,有没有办法请求引用字段的值,而不是关联的对象?还是我必须做一些定制的事情?