如何使用实体框架向外表添加多个对象

本文关键字:添加 对象 何使用 实体 框架 | 更新日期: 2023-09-27 18:14:15

我是实体框架的新手。我有两个名为PollsCandidates的表,它们具有一对多关系。

我想在民意调查中添加多个候选人。

这是我的代码:

public bool InsertPolls(PollModel _polls)
{       
        polls = new Poll();
        candidates = new candidate();
        polls.Name = _polls.name;
        polls.startDate = startDate;
        polls.endDate = endDate;
        polls.Type = _polls.pollType;
        foreach (var candidatesID in _polls.candidateID)
        {
            candidates.Person_ID = candidatesID;
            candidates.Poll = polls;
            _dbContext.candidates.Add(candidates);
            _dbContext.SaveChanges();
        }
}

但是这会抛出一个异常

类型为'System '的异常。附加信息:属性'Person_ID'是对象的关键信息的一部分,不能修改。

有谁能帮我一下吗?谢谢你!

如何使用实体框架向外表添加多个对象

将此问题放在for循环的第一行流动代码

candidates = new candidate();

还从代码顶部删除candidates = new candidate();for循环 remove too

 candidates.Poll = polls;

因为你在代码的顶部添加了

这是最终代码

public bool InsertPolls(PollModel _polls)
{       
    polls = new Poll();
    polls.Name = _polls.name;
    polls.startDate = startDate;
    polls.endDate = endDate;
    polls.Type = _polls.pollType;
    _dbContext.Polls.Add(polls);
    _dbContext.SaveChanges();
    foreach (var candidatesID in _polls.candidateID)
    {
        candidates = new candidate();
        candidates.Person_ID = candidatesID;
        _dbContext.candidates.Add(candidates);
        _dbContext.SaveChanges();
    }
}