【发布时间】:2021-10-20 20:22:01
【问题描述】:
我调用了 UPDATE,但添加了一个新行。为什么这可能?模型中的 ID 是正确的。即使我将纯粹的 Refresh 留在管理器中,它仍然会以这种方式发生。 型号:
public class Drink
{
public Drink()
{
ImagesCount = 0;
Hidden = false;
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity), Key()]
public int DrinkId { get; set; }
public string Title { get; set; }
public int Price { get; set; }
public int ImagesCount { get; set; }
public bool Hidden { get; set; }
}
存储库:
public void Update(TEntity entity)
{
dbSet.Update(entity);
context.SaveChanges();
}
经理:
public void SaveDrink(Drink drink)
{
if (drink.DrinkId != 0)
{
drinkRepository.Update(drink);
} else
{
drinkRepository.Insert(drink);
}
}
【问题讨论】:
-
您确定 DrinkId 不等于 0?
-
@DJ Burb 是的,我在编辑的时候做了ID输出,不是0。
-
感谢您的帮助,我忘记在视图中添加带有 ID 的字段,它没有发送到 POST。已显示 GET ID。
-
@WebFR 请发布您的
SaveDrinkactions 的视图 (cshtml) 文件代码。 -
@PritomSarkar 我在上面写道,我已经发现了一个错误。谢谢。
标签: asp.net-mvc entity-framework asp.net-core entity-framework-core