我正在使用 ASP.NET Core 6 和 mongodb 作为数据库构建一个 API。我正在尝试设置某个字段以从 true 切换到 false,反之亦然。如果场isactive:"True"
然后我必须将其更新为 false,反之亦然。
我已经弄清楚如何更新该值,但我必须自动将此字段切换为相反的值无需指定值。
这是存储库类:
public bool UpdateStatus(string id)
{
_activity.UpdateOne(x => x.Id == id,
Builders<Activity>.Update.Set(u => u.IsActive,false));
return true;
}
上述存储库的控制器:
public ActionResult putbystatus(string id)
{
var existingactivity = activityRepository.Get(id);
if (existingactivity == null)
{
return NotFound($"Activity with provider id = {id} not found");
}
activityRepository.UpdateStatus(id);
return NoContent();
}
你可以像下面这样写
public bool UpdateStatus(string id)
{
var filter = Builders<Activity>.Filter.Eq("Id", id);
_activity.UpdateOne(filter,
Builders<Activity>.Update.Set(u => u.IsActive,!_activity.Find(filter).FirstOrDefault().IsActive));
return true;
}
//or if you can modify the repository to accept IsActive value
public bool UpdateStatus(string id, bool isActive)
{
_activity.UpdateOne(x => x.Id == id,
Builders<Activity>.Update.Set(u => u.IsActive, isActive));
return true;
}
//Controller for above repository
public ActionResult putbystatus(string id)
{
var existingactivity = activityRepository.Get(id);
if (existingactivity == null)
{
return NotFound($"Activity with provider id = {id} not found");
}
activityRepository.UpdateStatus(id,!existingactivity.IsActive);
return NoContent();
}
[enter image description here][1]
[1]: https://i.stack.imgur.com/tytAK.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)