C# 在模型中保留计数器
我正在尝试创建投票/投票应用程序,并希望跟踪为选项所做的投票数量。投票时,会通过一个id,根据id,计数器会增加一个。但当我投票时,另一个计数器又回到了一个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 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();
}
我找到了解决方案,我需要在视图中包含计数器的隐藏属性,以防止它们重置。每次更新时,您是否都要实例化一个新的类实例?我想我可能是,嗯。您发布的代码片段不足。请发布您的整个控制器。如果是这种情况,那么它将在每次更改时重置您的所有属性。我发布了完整的功能,您知道如何防止计数器重置吗?