Linq to sql ASP.NET MVC2字典未使用动态索引更新

Linq to sql ASP.NET MVC2字典未使用动态索引更新,linq-to-sql,asp.net-mvc-2,Linq To Sql,Asp.net Mvc 2,我正在开发一个搜索引擎,它可以对数据库项进行参数化评分。因此,我设置了一个评分类,允许管理员管理和返回特定项目的分数。例如,假设我正在给计算机打分。如果有人在搜索表单中选择了特定数量的RAM,我希望匹配的分数高于接近匹配的分数 该类允许根据数据库项的ID添加分数作为索引: public class ScoringMechanism { // Dictionary that holds scores private Dictionary<int, int> _score

我正在开发一个搜索引擎,它可以对数据库项进行参数化评分。因此,我设置了一个评分类,允许管理员管理和返回特定项目的分数。例如,假设我正在给计算机打分。如果有人在搜索表单中选择了特定数量的RAM,我希望匹配的分数高于接近匹配的分数

该类允许根据数据库项的ID添加分数作为索引:

public class ScoringMechanism {
    // Dictionary that holds scores
    private Dictionary<int, int> _scores;

    public ScoringMechanism() {
        this._scores = new Dictionary<int, int>();
    }

    public AddOrUpdate(int id, int score) {
        if (_scores.ContainsKey(id)) {
            _scores[id] += score;
        } else {
            _scores.Add(id, score);
        }
    }
}
我在代码中注意到的是:当通过computer.ID变量动态更新分数时,分数不会更新。但是,当我显式声明一个id时,它会更新


本质上,它是有效的。

您确定
computer.ID
不是0吗?一般来说,您可以在调试器中单步执行该代码,并查看传递的值。是的,我可以提取数据库中所有项的记录。此外,我刚刚注意到有一个实例可以使用它。但问题之一是,我不明白为什么在那个特定的区域它能工作,而在我没有设置任何条件的情况下它却不能工作。
scores.AddOrUpdate(15, 25);
scores.AddOrUpdate(15, 25);