0

我目前正在处理的页面根据他们所在的投资组合搜索各种实体。为了应用其他搜索条件(除了投资组合),页面首先按投资组合获取实体,然后将条件应用于它们,如此处所示:

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.:

在打印出来的堆栈跟踪中,它转到上面提到的那些行。所有其他位置都经常被其他进程使用,并且他们之前都没有遇到过这个问题。上面提到的行是唯一不同的地方。

有任何想法吗?

4

2 回答 2

1

您可能混合了不同的版本。

尝试重新部署所有程序集。

于 2010-07-23T20:19:56.447 回答
0

刚刚有一个类似的错误,原因是我有一个控件的首页定义,该控件具有与后面代码中的私有变量名称相同的 id 文本,重命名其中一个,问题就解决了。

于 2014-10-21T16:01:12.647 回答