Я просто добавляю ученика в базу данных, итерируя через набор списка типов (i.e. Items)
. Элементы здесь строго не указаны. Я получаю это из другого места. Поэтому мне нужно построить объект Student из него, прежде чем записывать его в SQL. У него есть студенческая информация.получение ошибки при сохранении объекта внутри итератора
Это работает отлично для меня, пока все проверки полей в порядке.
Однако, если первый элемент в списке имеет ошибку проверки (i.e. Age required field in Student model)
, я получаю ошибку, которая в порядке. Но для второго элемента у меня есть действительное значение по возрасту, но все еще получаю ошибку проверки для предыдущего элемента.
try
{
foreach (var item in Items)
{
Student student = new Student
{
StudentId = item.Id,
Age = item.Age,
Description = item.Description
};
_context.Student.Add(student);
_context.SaveChanges();
}
}
catch (MyCustomValidationException ex)
{
//// catch it and log it
}
Это что-то связанное с первым пунктом, все еще связанным с контекстом? Как я могу избавиться от этого? Все, что я хочу сохранить элементы в БД, итерации по списку, в зависимости от проверки.
Предметы
public class Items
{
public string Id {get;set;}
public string Age {get; set;}
public string Description {get;set;}
}
Это, как она населена
items.Add(
new Items
{
new Items {Id = 1, Age = null, Description = "ABC"},
new Items {Id = 1, Age = 12, Description = "ABC"}
}
)
Что находится в 'Items'? Какая ошибка? – dotctor
Элементы, как я сказал, это «Коллекция списка типов». У него есть студенческая информация. Ошибка. Возраст требует поля в моей модели. Если Age на первой итерации равно null, я получаю ошибку проверки, которая в порядке.Но для второй итерации у меня есть возраст, но EF все еще продолжает говорить, что требует Age. – simbada
Вы также можете отправить код для класса _context? Кстати, вы обычно используете _context.Students вместо .Student, указывая, что это набор (что означает записи) – peval27