首页 > 解决方案 > 从列表视图模型更新服务中的多个表行?

问题描述

我有一个视图模型,其值作为列表从视图发送,用于编辑四个输入框...

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();
    }
 }

处理这个问题的最佳方法是什么?

标签: c#asp.net-coreasp.net-core-mvcblazor

解决方案


我将假设幻数是 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();

推荐阅读