Ok я схожу с ума здесь, я пытался писать себе метод обновления в моем хранилище, и по какой-то странной причине я получаю исключение, когда я называю это ...Почему EF генерирует исключение?
public virtual T Update(T entity)
{
T dbEntity = _context.Set<T>().Find(entity.GetId());
if (dbEntity != null)
{
_context.SaveChanges();
}
return dbEntity;
}
Исключение происходит на «_context.SaveChanges();», контекст в этом случае является экземпляром DbContext, а не контекстом объекта. Я использую код EF первого и Т следующим образом ...
public partial class AC_Programme
{
[Key]
public int Id { get; set; }
public int OrganisationId { get; set; }
[Required]
[StringLength(255)]
public string Name { get; set; }
public string Description { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
public bool Active { get; set; }
[DataType(DataType.Time)]
public DateTime AutoCalculationTime { get; set; }
[DataType(DataType.Time)]
public DateTime AutoCutoffTime { get; set; }
public virtual ICollection<AC_Fund> AC_Funds { get; set; }
public virtual CX_Organisation Organisation { get; set; }
}
Я не могу понять, почему, несмотря на нимало буквально ничего, все, что я делал, было получить объект по идентификатору и вызвать сохранить изменения, что он чувствует необходимость идти в беспорядки с отношениями.
Любые идеи?
EDIT: упс я забыл включить исключение ...
Исключение типа «System.InvalidOperationException» произошло в EntityFramework.dll, но не был обработан в пользовательском коде
Дополнительная информация: Операция завершилась неудачно: отношение не может быть изменено, поскольку одно или несколько свойств внешнего ключа не имеют значения NULL. При изменении отношения к связанному свойству внешнего ключа установлено значение null. Если внешний ключ не поддерживает нулевые значения, необходимо определить новое отношение, для свойства внешнего ключа должно быть назначено другое ненулевое значение, или не связанный объект должен быть удален.
Это становится еще более свойственно ...
public virtual T Update(T entity)
{
_context.SaveChanges();
return null;
}
... результаты в одной и той же ошибки.
Что такое заброшенное исключение? Вы не разместили его –
, объект исключения содержит свойство ValidationErrors. Это хорошее место, чтобы начать выяснять, почему возникает исключение. – Domysee
. Мне плохо жаль насчет отсутствующей информации об исключении ... Ее там сейчас. – War