我正在尝试使用 Nhibernate Criteria 执行我只能描述为 IN() 的反向版本..
而不是说存储在属性中的值在列表/集合中 X
我想说,这个值 X(一个 ID)在作为对象属性的列表中。
任何帮助表示赞赏,如果这没有意义,我可以尝试更好地解释。
编辑向人们道歉,因为我知道这没有足够的意义......
我的系统中有一个事件项目,它可以有一个适用于它的受众(项目)列表。如果管理员想要删除受众项目,我想检查该项目是否未被任何事件引用。(AudienceList 存储为 Audiences 的 ID 字符串列表)。
我当时的想法是这样的:
var results = SessionInstance.Session.CreateCriteria(typeof(EventItem.Items.EventItem)) .Add(Restrictions.In("AudienceList", myAudience.ID)) .List();
但是我需要 AudienceList 和 myAudience.ID 反过来不是吗?我有观众 ID,但需要检查它是否在其他 ID 列表中。
再次感谢。
编辑 2
EventItem 的定义是它的属性之一是受众 ID 的 DetailCollection,它们作为 ID 的字符串列表保存到数据库中。