在列表上执行查询时出现 {“不支持指定的方法。”} 异常,哪些元素应在另一个列表中查找
我知道这在某种程度上听起来很愚蠢和模糊,但我需要它:D
我想在 NH3.1 上执行查询:
var internalReferences = Repository<InternalReferenceRule>
.FindAll(e => e.PropertyType.EntityType.Id == 1)
var properties = Repository<IProperty>
.Find(p => p.PropertyType.RuleObjects.Any(r => internalReferences.ToList().Any(i => i.Id == r.Id)));
第一个列表 (internalReferences) 将在要检查的第二个查询中使用 如果属性的 RuleObjects 在第一个列表中可用。
我对原始查询进行了简化,使其更易于理解......
无论如何,我从 NHibernate 收到 System.NotSupportedException ,其消息是: {“不支持指定的方法。”}
有什么想法吗?
I know it sounds stupid to some extend and vague but I need it :D
I want to perform a query on NH3.1 :
var internalReferences = Repository<InternalReferenceRule>
.FindAll(e => e.PropertyType.EntityType.Id == 1)
var properties = Repository<IProperty>
.Find(p => p.PropertyType.RuleObjects.Any(r => internalReferences.ToList().Any(i => i.Id == r.Id)));
the first list (internalReferences) is going to be used in the second query which wants to check
if the RuleObjects of a property are available in the first list.
I kinda simplified the original query to make it more understandable.....
anyway, I get the System.NotSupportedException from NHibernate and its message is :
{"Specified method is not supported."}
any idea?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不能在 NHibernate 查询中使用
internalReferences.Any()
,因为它不知道如何将其转换为 SQL。尝试以下操作这应该会生成使用
IN (:p0, :p1, :p2)
的 SQL 查询。You can't use
internalReferences.Any()
in NHibernate queries because it can't know how to translate that to SQL. Try the followingThat should result in a SQL query that uses
IN (:p0, :p1, :p2)
.