【发布时间】:2018-07-24 23:04:46
【问题描述】:
我正在进行 POST 调用以向数据库中添加一朵花,但如果 if 语句为真,我想更新另一个表中的记录。如果声明不正确,它会毫无问题地添加花朵,但是当我尝试使用新 ID 更新 PinkRoseId 时,它会创建一条新记录而不是更新旧记录。
还有其他方法可以更新数据库吗?
public void AddFlower(Flower flowerToAdd, int someId)
{
_flowerContext = _contextUtility.GetFlowerContext(flowerToAdd.FlowerName);
var pinkRoseId = _flowerService.GetFlowerIdByName(flowerToAdd.FlowerName, "PinkRose", "Rose");
if (flowerToAdd.SomeFlowerId.HasValue)
{
var flowerToUpdate = _updateService.UpdateFlowerBySomething(flowerToAdd.FlowerName, flowerToAdd.SomeFlowerId.Value, flowerToAdd.PetalAk);
flowerToUpdate.PinkRoseId = pinkRoseId;
_flowerContext.SaveChanges();
}
var firstId = _petalService.GetFlowerIdByName(flowerToAdd.FlowerName, "rose", "petal");
var secondId = _sunService.GetSunIdByTypeOf(flowerToAdd.FlowerName, flowerToAdd.SomeName, "sun");
flowerToAdd.FlowerId = secondId;
flowerToAdd.SomeOtherId = firstId;
flowerToAdd.CreatedDate = DateTime.UtcNow;
flowerToAdd.CreatedByUserID = someId;
_flowerContext.Flowers.Add(flowerToAdd);
_flowerContext.SaveChanges();
}
【问题讨论】: