Niranjan Vinay Ответов: 1

System.data.entity.validation.dbentityvalidationexception: 'ошибка проверки для одной или нескольких сущностей.


Система.Данные.Сущность.Утверждение.DbEntityValidationException: "ошибка проверки для одной или нескольких сущностей. Увидеть EntityValidationErrors недвижимости для получения более подробной информации.'

Что я уже пробовал:

Это мой файл класса репозитория

пространство имен AutoBuggi.Хранилище
{
публичный класс CategoryRepository
{
public int CategoryId { get; private set; }

// частный объект dbCategory;



public int SaveCategory(Models.Модель каркаса)
{
пробовать
{
использование (var dbcontext = new AutoBuggiEntities())
{

var dbCategory = новые Автобуги.CarCategory()
{
Id = Guid.Метод newguid(),
CategoryId = модель.CategoryId,
VariantName = model.VariantName
};
DbContext можно.CarCategories.Добавить(dbCategory);
DbContext можно.Метод SaveChanges();
}
}


поймать (исключение бывший)
{
бросок экс;
// возвращает значение типа int.Пустые;
}

return CategoryId ;

}

public int DisplayAllCategory(Models.Модель каркаса)
{
пробовать
{
использование (var dbContext = new AutoBuggiEntities())
{
ВАР категорий = DbContext можно.CarCategories.Список();
var dbCategory = новые Автобуги.CarCategory()
{
Id = Guid.Метод newguid(),
CategoryId = модель.CategoryId,
VariantName = model.VariantName
};

DbContext можно.CarCategories.Добавить(dbCategory);
DbContext можно.Метод SaveChanges();
}
}

поймать(исключение бывший)
{

}

return CategoryId;
}


}
}






Это мой HTML файл

@model AutoBuggi.модель представления.CategoryViewModel

@{
Видовой мешок.Title = "Создать Категорию";
}


@использование (в формате HTML.Бигинформ())
{
@*@В формате HTML.AntiForgeryToken()*@


CarCategory




@HTML-код.ValidationSummary(истина, "", новые { @класс = "текст-опасность" })



@Html.LabelFor(model => model.CarCategory.CategoryId)
@Html.EditorFor(model => model.CarCategory.CategoryId)
@Html.ValidationMessageFor(model => model.CarCategory.CategoryId)






@Html.LabelFor(model => model.CarCategory.VariantName)
@Html.EditorFor(model => model.CarCategory.VariantName)
@Html.ValidationMessageFor(model => model.CarCategory.VariantName)









}

Vincent Maverick Durano

Как вы определили свои модели?Класс каркасности? Использовали ли вы аннотации данных для проверки свойств?

Niranjan Vinay

У меня есть определенные модели.Класс CarCategory. Я не использовал аннотации данных

моя модель.Класс CarCategory
публичный класс CarCategory
{
идентификатор публичных идентификатор { получить; набор; }
public int CategoryId { get; set; }

[ DisplayAttribute(Name = "Имя Варианта")]
public string VariantName { get; set; }
}

1 Ответов

Рейтинг:
0

Vincent Maverick Durano

Пробовали ли вы проверить тип данных и длину для каждого вашего свойства в базе данных? Например, ваш VariantName свойство имеет длину 20 символов в вашей базе данных, но вы передаете больше, чем то, что потенциально может вызвать эту ошибку.

Чтобы проверить истинную причину ошибки, вы можете поймать DbEntityValidationException при попытке вставить новую запись. Например:

try{
   // your code for insert here
}
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)  
    {  
        Exception raise = dbEx;  
        foreach (var validationErrors in dbEx.EntityValidationErrors)  
        {  
            foreach (var validationError in validationErrors.ValidationErrors)  
            {  
                string message = string.Format("{0}:{1}",  
                    validationErrors.Entry.Entity.ToString(),  
                    validationError.ErrorMessage);  
                // raise a new exception nesting  
                // the current instance as InnerException  
                raise = new InvalidOperationException(message, raise);  
            }  
        }  
        throw raise;  
}  


Niranjan Vinay

Примите проверку кода, который вы отправили ошибка приходит как DbEntityValidationException: проверка не удалась для одной или нескольких сущностей. Дополнительные сведения см. В разделе свойство EntityValidationErrors.

Vincent Maverick Durano

Теперь отладьте свой код и шагните в каждую строку, чтобы увидеть, что вызывает ошибку. См. аналогичный вопрос: https://www.c-sharpcorner.com/UploadFile/97fc7a/validation-failed-for-one-or-more-entities-mvcentity-frame/

Niranjan Vinay

Спасибо тебе брат

Vincent Maverick Durano

Без проблем. Только одна вещь. Пожалуйста, не забудьте закрыть эту тему, отметив сообщение, которое поможет вам в качестве ответа, чтобы будущие читатели могли легко определить, какое сообщение поможет вам.

Спасибо!