powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
10 сообщений из 10, страница 1 из 1
Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
    #38855029
MakTpaxep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
MVC4, EF6

Код:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
		[HttpPost]
		public ActionResult Register(User user)
		{
			if (ModelState.IsValid)
			{
				var ctx = new DatabaseContext();
				ctx.Users.Add(user);
				ctx.SaveChanges();
				return RedirectToAction("Index", "Home");
			}
			return View(user);
		}


Ошибка: https://yadi.sk/i/gdy_r25vdyybu
1. Не понимаю почему проходит ModelState.IsValid
2. Возможно не понимаю 1, потому что не понимаю как ASP.NET MVC понимает какую модель надо трогать в ModelState.IsValid
3. Не понимаю какой такой EntityValidationErrors меня просит проверить в ошибке? ctx.EntityValidationErrors и user.EntityValidationErrors нету.
...
Рейтинг: 0 / 0
Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
    #38855087
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MakTpaxep,

Для начала приведите класс User и схему ctx.Users.
...
Рейтинг: 0 / 0
Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
    #38855120
MakTpaxep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    public partial class DatabaseContext : DbContext
    {
        public DatabaseContext()
            : base("name=DatabaseContext")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
    
        public virtual DbSet<User> Users { get; set; }
    }





Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  public partial class User
    {
    
        public int Id { get; set; }
        public string Nick { get; set; }
        public string Name { get; set; }
        public string Login { get; set; }
        public string Password { get; set; }
        public System.DateTime RegisterDate { get; set; }
        public string Email { get; set; }
    }



Ничего особенного. Я генерил все через designer.
...
Рейтинг: 0 / 0
Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
    #38855186
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MakTpaxep,

3. Не понимаю какой такой EntityValidationErrors меня просит проверить в ошибке? ctx.EntityValidationErrors и user.EntityValidationErrors нету. - в исключении это поле
...
Рейтинг: 0 / 0
Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
    #38855193
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MakTpaxep,

Что-то мне говорит, что Вы пытаетесь заполнять и сохранять ID, хотя в схеме таблицы в базе оно у Вас PK и Autoincremental Identity... Не?
...
Рейтинг: 0 / 0
Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
    #38855195
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,

В любом случае данные, которые содержит объект user не соответствуют constraints таблицы в базе.
...
Рейтинг: 0 / 0
Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
    #38855390
MakTpaxep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятно, что ошибка приходит из базы. Пользователь нормально создается если заполнить данные https://yadi.sk/i/mFiqO68odzPPk.
Но если не указать ничего, то ошибка. Просто получается, что EF не сгенерил никакой валидации, пропускает все. Меня к такому жизнь не готовила) Ну впрочем буду читать и разбираться дальше.
...
Рейтинг: 0 / 0
Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
    #38855429
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MakTpaxep,

А Вы хотели, чтобы EF за Вас провалидировал данные? Ну вот Он Вам и провалидировал! Но уже только на стороне сервера базы данных ;-)
...
Рейтинг: 0 / 0
Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
    #38855432
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я Вам рекомендую посмотреть первым делом валидацию полей в MVC. А потом когда в этом вопросе разберетесь сопоставить ее с ограничениями на поля в базе данных. Валидация в MVC никак не связана с валидацией на сервере базы данных, и Вы сами должны удостовериться при отправке запроса Insert в базу, что данные валидны для оного.
...
Рейтинг: 0 / 0
Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
    #38855433
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И последнее - избегайте использовать жестко-завязанную архитектуру между лейерами, используйте Domain-Driven Development. Тогда Вам станет и проще понять, что Вы сейчас делаете неверно.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Делаю проверку на валидацию, а потом сохраняю и получаю ошибку - одно из полей невалидно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]