ICriteriaQuery不支持具有更高版本NHibernate的AddUsedTypedValues

时间:2012-10-23 21:38:51

标签: nhibernate nhibernate-criteria

在旧版本的NHibernate中,ICriteriaQuery中有一个名为“AddUsedTypedValues”的方法。升级到NHibernate 3.1后,这种方法不存在。有谁知道该方法在哪里移动(到另一个接口)或NHibernate明确删除了对它的支持?

谢谢!

1 个答案:

答案 0 :(得分:1)

替换方法 AddUsedTypedValues 以及(AbstractCriterion:)ICriterion 内部实现。 AddUsedTypedValues是一种如何注入参数的方法,后来在ICriterion实现器中调用它们,如 sqlStringBuilder.AddParameter(); (所以距离添加和使用的距离是显着的而且不明确) 当前版本(3+)提供ICriteriaQuery方法

IEnumerable NewQueryParameter(TypedValue参数);

可用于获取参数数组,然后在构建SQL语句时显式使用:

var parameter = criteriaQuery.NewQueryParameter(typedValue).Last()
sqlStringBuilder.Add(parameter); 

现在很清楚哪个参数被添加到SQL语句中。我不得不实施自己的ICrietrion,所以我也面临这个问题......