私が現在取り組んでいるページは、ポートフォリオに基づいてさまざまなエンティティを検索します。他の検索基準 (ポートフォリオ以外) を適用するために、ページは最初にポートフォリオごとにエンティティを取得し、次に基準をそれらに適用します。ここに示すように:
IPortfolioLogic logic = this.objectFactory.GetObject<IPortfolioLogic>(this.dal);
PortfolioEntity portfolio = logic.GetPortfolioByID(this.context, this.dal, requestDto.Portfolio.UniqueID);
var unfilteredEntities = portfolio.EntityGroupEntity.EntityGroupItemList.Select(i=>i.EntityID);
IList<EntityEntity> entities = criteria.ApplyTo<EntityEntity>(unfilteredEntities);
この最後の行は、次のコードに送信します。
public IList<T> ApplyTo<T>(IEnumerable<T> list) {
IList tmpList = this.ApplyTo(list, typeof(T));
IList<T> resultList;
if (tmpList == null) {
resultList = null;
}
else {
resultList = new List<T>();
foreach (object tmp in tmpList) {
resultList.Add((T)tmp);
}
}
return resultList;
}
public IList ApplyTo(IEnumerable list, Type entitiesType) {
return this.GetEvaluator().ApplyTo(list, entitiesType);
}
ここから、ポートフォリオに関連し、基準にも一致する特定のエンティティを取得します。
私のローカルマシンでは、これは完全に機能します。エンティティを見つけて、それらの基準を実行します。ただし、私たちのファームでは、次のメッセージが表示されます。
Message: Error #0e3c57ad-a834-47ab-996a-deecb80fccca
Ambiguous match found.:
出力されるスタック トレースでは、上記の行に移動します。他のすべての場所は他のプロセスによって頻繁に使用されており、以前にこの問題が発生したことはありません。上記の行だけが異なります。
何か案は?