c# - 从列表视图模型更新服务中的多个表行?
问题描述
我有一个视图模型,其值作为列表从视图发送,用于编辑四个输入框...
public class UpdatePollViewModel
{
public List<string> Answer { get; set; }
}
在我的服务中,我通过Id从数据库中得到了相同的值:
public bool UpdatePoll(Guid id, UpdatePollViewModel viewModel)
{
var polloption = _context.PollOptions.Where(p => p.PollId == Id).ToList();
}
我用过这个,但它没有意义,因为它重复了很多!
foreach (string item in viewModel.Answer)
{
foreach (var item2 in polloption)
{
item2.Answer = item;
_context.SaveChanges();
}
}
处理这个问题的最佳方法是什么?
解决方案
我将假设幻数是 4。
有 4 个输入框用于用 4 个答案填充视图模型列表,其顺序与从数据库中检索到的现有 4 个答案的顺序相同,并且您希望将 4 个输入映射到数据库中的 4 个记录。
var polloption = _context.PollOptions.Where(p => p.PollId == Id).ToList();
for (int i = 1; i <= 4; i++)
{
polloption[i-1].Answer = viewModel.Answer[i-1];
}
_context.SaveChanges();
推荐阅读
- r - 如何使用 R 中的 dplyr 获取变量的总和,仅针对另一个变量的一个值
- c - linux lockf、flock和fcntl下C语言锁文件是什么意思?
- azure - Azure 门户中禁用的 Web 应用的“部署选项”
- java - 删除黑色背景时出现 OpenCV 3.2 错误
- javascript - HTML 插入 JS 的麻烦
- c# - 下载文件抛出 UnauthorizedAccessException net core 2
- php - 在 SQL 上对粒度样本进行平均最简单的方法
- react-admin - React-Admin:在自定义路由上点击“保存”后如何重定向到指定的“列表”
- python - 单击鼠标后如何获取坐标?
- javascript - vuetify 的 Vuejs 2.4 转换组调整大小问题