我有我的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();