gpt4 book ai didi

c# - SaveChanges 在 for 循环中抛出验证错误

转载 作者:太空宇宙 更新时间:2023-11-03 12:46:44 26 4
gpt4 key购买 nike

我有一个实体Candidate

public class Candidate
{
public int Id { get; set; }

[Required]
public string Name { get; set; }

public int Age { get; set; }
}

现在我有一个候选者列表,我遍历列表并分别保存它们。现在,列表中的某些项目与 Candidate 模型上给出的验证不匹配。

var dbContext = new TestDbContext();

var list = new List<Candidate>
{
new Candidate { Name = "", Age = 20 },
new Candidate { Name = "Tom" , Age = 25 }
};


foreach (var item in list)
{
try
{
dbContext.Candidates.Add(item);
dbContext.SaveChanges();
}
catch (Exception)
{
// Handle exception
}
}

很明显,第一项会抛出验证错误,即

Name is required.

但是列表中的第二项显然满足验证要求,但我再次得到验证错误即

Name is required.

我在这里做错了什么,为什么代码会这样?

最佳答案

只需将 finally block 添加到您的 Try Catch 中,如下所示:

try
{
dbContext.Candidates.Add(item);
dbContext.SaveChanges();
}
catch (Exception)
{
// Handle exception
}
finally
{
dbContext.Candidates.Remove(item);
}

关于c# - SaveChanges 在 for 循环中抛出验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37037037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com