C# 在模型中保留计数器

C# 在模型中保留计数器,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我正在尝试创建投票/投票应用程序,并希望跟踪为选项所做的投票数量。投票时,会通过一个id,根据id,计数器会增加一个。但当我投票时,另一个计数器又回到了一个 // ID of the option selected: public int VotedID { get; set; } Counters for the options: public int BlueCornerPercent { get; set; } public int RedCorn

我正在尝试创建投票/投票应用程序,并希望跟踪为选项所做的投票数量。投票时,会通过一个id,根据id,计数器会增加一个。但当我投票时,另一个计数器又回到了一个

    // ID of the option selected:
    public int VotedID { get; set; }

    Counters for the options:
    public int BlueCornerPercent { get; set; }
    public int RedCornerPercent { get; set; }


    // Snippet of code - here is where I increase the counters. theFight is an instance of the model/entity.
    public void HandleVotes(Fight fight)
    {

        // Get full fight details:
        Fight theFight = db.Fights.Find(fight.FightId);

        // Get fighters id's in fight:
        var f1 = (from l in theFight.Fighters
                  select l).First();

        var f2 = (from l in theFight.Fighters
                  select l).Last();

        if (theFight.VotedID == f1.FighterID)
        {
            theFight.BlueCornerPercent++;
            db.SaveChanges();
        }

        else if (theFight.VotedID == f2.FighterID)
        {
            theFight.RedCornerPercent++;
            db.SaveChanges();
        }
    }

如图所示,我正在通过正在投票的“战斗”,并从那里更改计数器…

您可以尝试使用以下方法:

    if (theFight.VotedID == f1.FighterID)
    {
        theFight.BlueCornerPercent++;
        db.Entry(theFight).Property(p => p.BlueCornerPercent).IsModified = true;
        db.Entry(theFight).Property(p => p.RedCornerPercent).IsModified = false;
        db.SaveChanges();
    }

我找到了解决方案,我需要在视图中包含计数器的隐藏属性,以防止它们重置。

每次更新时,您是否都要实例化一个新的类实例?我想我可能是,嗯。您发布的代码片段不足。请发布您的整个控制器。如果是这种情况,那么它将在每次更改时重置您的所有属性。我发布了完整的功能,您知道如何防止计数器重置吗?