【发布时间】:2016-05-05 13:28:01
【问题描述】:
我有一个实体Candidate
public class Candidate
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
public int Age { get; set; }
}
现在我有一个candidates 的列表,我遍历列表并分别保存它们。现在列表中的某些项目与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
}
}
显然,第一项将引发验证错误,即
姓名是必填项。
但列表中的第二项显然满足验证要求,但我再次收到验证错误,即
姓名是必填项。
我在这里做错了什么,为什么代码会这样?
【问题讨论】:
-
一旦添加了一个item,它还在dbContext中;遇到异常时删除 Catch 中的项目
-
我要做一个 dbContext.Candidates.Remove(item) ???
-
或者你可以有 var dbContext = new TestDbContext();在for循环内
-
不,这对我不起作用,我使用存储库和其他东西 :)
-
删除工作了吗?
标签: c# asp.net-mvc entity-framework entity-framework-6