【发布时间】:2011-10-18 04:25:19
【问题描述】:
我正在使用 nHibernate 来搜索不匹配的字符串。
型号是这样的:
PlayerGroup有一个字段ExpectedPlaylistKeyPlayer有一个字段LastReportedPlaylistKey。一个
PlayerGroup有多个Players。
我想执行查询以查找与该组的预期播放列表不匹配的所有玩家。
我的代码如下:
PlayerGroup playerGroupAlias = null;
Player playerAlias = null;
var query = this.Session.QueryOver<Player>(() => playerAlias)
.JoinAlias(() => playerAlias.PlayerGroup, () => playerGroupAlias)
.Where(
() => (playerGroupAlias.ExpectedPlaylistKey != playerAlias.CurrentlyReportedPlaylistKey)
);
我检查了生成的 SQL,它使用了这个 where 子句:
WHERE not (playergrou1_.ExpectedPlaylistKey = this_.CurrentlyReportedPlaylistKey)
不幸的是,如果其中一个值为 NULL,那么即使另一个值不为 null,也会返回 false。
如何修复我的 nHibernate 查询,以便在任一字符串为 NULL 时处理这种情况?
【问题讨论】:
标签: nhibernate queryover