Это плохая практика, чтобы позволить нулевые поля в таблицу БД, чтобы упростить привязку модели от Ajax?


Пожалуйста, прочитайте здесь и здесь, чтобы получить краткий обзор моей проблемы и увидеть, что именно я имею в виду, когда говорю привязка модели из Ajax.

Было бы плохой идеей сделать поля внешнего ключа обнуляемыми, чтобы обеспечить привязку модели из javascript?

Например, мы хотим привязать к объекту Person во время вызова ajax... (Класс Person создается из Entity Framework)

public ActionResult Create(Person personToCreate)
{
    //Create person here
}

Если у Person был Pet объект, который был внешний ключ в БД, вы не можете передать объект Pet вместе с другими данными из вызова ajax. Поэтому, если Pet не является nullable в БД, привязка к Person не будет работать.

Так вот, что я хочу знать... чтобы выполнить привязку модели, должен / могу ли я обнулить поля БД, которые я не могу передать из javascript? или мне нужно сделать пользовательскую привязку модели и привязать к "более плоской" версии объекта, чтобы следовать рекомендациям? пример более плоской версии объект:
public class SimplePerson() {
   private string firstName;
   private string lastName;
   private string petName;
}
Причина, по которой я спрашиваю об этом, заключается в том, что многие из созданных мной классов Entity Framework содержат внешние ключи, что означает, что мне нужно будет создать плоский дубликат почти всех этих классов, и это, похоже, идет вразрез со всем сухим принципом.
1 2

1 ответ:

Я прочитал то, что вы связали и опубликовали, я не могу действительно думать о хорошем решении с вершины моей головы, но вся концепция изменения вашей базовой базы данных ради AJAX заставляет меня чувствовать себя некомфортно. Я знаю, что это не лучший ответ, я сам сейчас борюсь с несколькими проблемами дизайна EF, и было несколько раз, когда я испытывал искушение изменить базу данных ради модели, но это всегда возвращалось, чтобы укусить меня в прошлом.