You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Controller中设置数据库表FoodId与MenuItemId两列值保持一致

实现两列值同步的解决方案

1. 新提交数据自动同步

你只需要在POST请求的Create方法中添加一行赋值逻辑即可,在验证通过、写入数据库之前,直接把MenuItemId赋值为FoodId的取值:
修改后的代码片段如下:

if (ModelState.IsValid)
{
    var userId = _userManager.GetUserId(HttpContext.User);

    reviews.UserId = userId;
    reviews.Date = DateTime.Now;
    // 新增这行代码实现两列值同步
    reviews.MenuItemId = reviews.FoodId;

    _context.Add(reviews);

    await _context.SaveChangesAsync();

    return RedirectToAction("Index");
}

这样后续所有新创建的评论数据,MenuItemId都会和FoodId保持一致。

2. 存量历史数据更新

目前表里已经存在的MenuItemId为NULL的数据,你可以直接执行一次SQL语句完成批量更新:

UPDATE Reviews 
SET MenuItemId = FoodId 
WHERE MenuItemId IS NULL;

如果你不想直接操作数据库,也可以临时写一个EF的批量更新接口,执行一次后删除即可。

如果后续你需要让两个字段独立赋值,删掉新增的那行赋值代码即可恢复原有逻辑。

内容的提问来源于stack exchange,提问作者Jackson Parker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:09:01