在更新我的模型中的一个字段时遇到麻烦



我有我的Web API操作AddParticipant接受事件ID

我在我的ParticipantList(事件ID和用户ID)

中添加一行

我想在Events模型(即ParticipantList)中增加一个字段。但是,我遇到了一个错误

"附加'xx.Models.Event'类型的实体失败,因为同一类型的另一个实体已经具有相同的primary key值。当使用'附件'方法或将实体的状态设置为"不变"或"修改"时,这可能会发生这种情况。如果图中的任何实体都具有冲突的键值。"

这可以解决什么?

public IHttpActionResult AddParticipant(int id)
{
    var Participant = new ParticipantList
    {
        EventId = id,
        ParticipantId = base.ControllerContext.RequestContext.Principal.Identity.GetUserId()
    };
    db.ParticipantList.Add(Participant);
    db.SaveChanges();
    var eventupdated = new Event()
    {
        Id = id,
        ParticipantCount = db.Events.Find(id).ParticipantCount++
    };
    using (db)
    {
        db.Events.Attach(eventupdated);
        db.Entry(eventupdated).Property(x => x.ParticipantCount).IsModified = true;
        db.SaveChanges();
    }
    return Ok();
}

尝试替换

 var eventupdated = new Event()
    {
        Id = id,
        ParticipantCount = db.Events.Find(id).ParticipantCount++
    };
    using (db)
    {
        db.Events.Attach(eventupdated);
        db.Entry(eventupdated).Property(x => x.ParticipantCount).IsModified = true;
        db.SaveChanges();
    }

var eventupdated = db.Events.Find(id);
eventupdated.ParticipantCount= eventupdated.ParticipantCount++;//OR just eventupdated.ParticipantCount++;
db.SaveChanges();

最新更新