私はこのコードを持っています:
if (pertinentDataExists) {
List<Entity> operatorList = new List<Operator>();
List<Entity> newOperatorList = criteria.newOperatorList;
foreach (Operator operator in operatorList)
{
operatorList.Add(operator);
}
queryCriteria.CreateCriteria("OperatorList").Add(Restrictions.In("Operator", operatorList));
}
そして後で:
if (otherPertinentDataExists) {
Object[] objects = new Object[criteria.newRoleTypeList.Count];
for (int = 0; i < criteria.RoleTypeList.Count; i++) {
objects[i] = criteria.RoleTypeList[i].Id;
}
queryCriteria.CreateCriteria("OperatorList").Add(Restrictions.In("Role", objects));
}
これらは別々にうまく動作します。ただし、両方のケースにリストに追加する基準がある場合は、次のようになります。
NHibernate.QueryException メッセージ: 関連付けパスが重複しています: OperatorList
Role
条件が既に作成されている場合、制限を追加するにはどうすればよいですか?