【发布时间】:2009-04-29 11:58:23
【问题描述】:
我正在尝试使用 Nhibernate Criteria 执行我只能描述为 IN() 的反向版本..
而不是说存储在属性中的值是在列表/集合X中
我想说,这个值 X(一个 ID)在列表中,它是对象的一个属性。
感谢任何帮助,如果这没有意义,我可以尝试更好地解释。
编辑向人们道歉,据我所知这没有足够的意义......
我的系统中有一个事件项目,它可以有一个适用于它的受众(项目)列表。如果管理员想要删除受众项目,我想检查该项目是否未被任何事件引用。 (AudienceList 存储为受众 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 的字符串列表保存到数据库中。
【问题讨论】:
-
我想您是在问如何确定列表中的给定项目是否具有具有给定值的属性 ID,但坦率地说,在我尝试回答之前我可以做更多的澄清...... 更多请详细说明:-)
-
啊,我没有意识到涉及到 N2。您的关系结构似乎有点奇怪 - 有没有机会看到一些表定义和映射文件摘录?
标签: c# sql nhibernate hql